continue是跳过当次循环,执行下一次循环
替换方案
1、break调多层循环好像和编译器有关,没有找到解决方案,你可以将switch完后要执行的语句放到while循环开头,加一个if判断第一次进循环不执行,最后一次进循环弹出while,while循环多加一次,把switch里的break换成continue
2、switch情况少的时候可以用if替换
尽量不要在多层循环里用break,因为编译器的关系,可能会有不确定因素
对于break有两种定义一种是跳出当前语句块,即{},这种情况switch中的break不会跳出while;另一种定义是break跳出当前循环,switch不是循环,break会跳出所在的while循环。
break不会退出两层的,switch中的break是不会退出while的,这个是没有问题的
cin这个语句不该出现在while的判断中吧,要不然需要输入两次z在可以进入循环
你直接while(1)死循环,设计一个退出程序的case分支,也就是exit函数
容错重新输入需要一个循环来解决,而不要在switch中解决
int z = 1;
while(z)
{
cout << "你想做什么......." << endl;
cin >> z;
switch(z)
{......}
}
break不可能跳出while循环,只跳出switch选择句。把最后一句前}前的cin>>z删除就应该能奏效。
你的不是连while的循环一起结束,而是多了一个cin>>z;
在你的倒数第二那个 cin >> z; 是不要的
程序会停住,等待你再输入一个z。
你的switch没有加大括号{}
switch(z)
{
case 1:
//your code
break;
case 2:
//your code
break;
}