我在执行的时候,第二次输入的是1时,按回车后就会自动结束,这是为什么?

如下代码:
#include "stdafx.h"
#include<iostream>

using namespace std;

int main(array<System::String ^> ^args)
{
int k,j;
cin>>k;
switch(k)
{
case 1: do
{
int k;
cin>>k;
}while(k!=1);
}
cin>>j;
}
我的意图是当输入1时,触发case,进而执行语句序列do……while语句,此句的意图是再输入一个已经重新定义的整型变量k,当k不等于1时跳出do……while循环进而遇到“}”结束switch语句。

慕雪6442864
浏览 205回答 3
3回答

潇潇雨雨

你的循环条件是k!=1,那你第二次输入的是1,当然不符合循环的条件而推出了,你要是想只要输入1就不退出,就改成k==1

长风秋雁

"{}"里面的k作用域只在括号里面,do循环里面的k在do里面,while语句用的k是之前的那个k

九州编程

while(k!=1);使用的是外部的k,也就是你第一次输入的k,所以无论你之后输入什么都会结束
打开App,查看更多内容
随时随地看视频慕课网APP