continue是效果是,在循环中,遇见continue,然后跳过剩余部分,从循环开始处继续循环。
break语句的效果是,从break语句开始,跳过剩余循环语句,并结束循环。
如代码:
#include<iostream>
int main()
{
using namespace std;
int a=0;
int i = 0, b = 0;
cout << "****请问,10 % 4等于多少?****"<< endl;
while (a!=2) //初始化为0,使得程序进入循环
{
cout << "****请在这里是输入正确答案:";
cin >> a;
while (a < 0 || a>4) //这个循环用于处理非0~4的输入
{
cout << "怎么可能?" << endl << endl;
cout << "请在这里是输入正确答案:";
cin >> a;
}
while (a >= 0 && a <= 4 && a!=2) //这个循环用于处理结果0,1,3,4的输入。
{
switch (a)
{
case 4: cout << "10 % 4的意思是,10除以4求余数。所以怎么可能等于4呢,假如被4整除,则值为0。" << endl; break; //跳过止呕的循环,重新返回do while内的第一句
case 3: cout << "你太笨了。" << endl;break; //跳过循环重新返回第一句
case 1: i++; cout << "你再想想?你已经错误的输入了" << i << "次 1 了" << endl;break;
case 0: b++;cout << "你又错了,这是你第" << b << "次输入 0 。" << endl;break;
}
break; //break离开这个while循环,回到上面的循环
}
if (b > 0) { cout << "你输错了" << i << "次1了。" << endl;continue; } //continue不会让输出循环结束
if (b > 3) { cout << "你没救了!" << endl;break; } //假如累计输入4次,break会让while结束
}
if (a == 2) {cout << "答案正确!" << endl;}
cout << "******结束*******" << endl;
system("pause");
return 0;
}
输出:
****请问,10 % 4等于多少?****
****请在这里是输入正确答案:0
你又错了,这是你第1次输入 0 。
你输错了0次1了。
****请在这里是输入正确答案:-1
怎么可能?
请在这里是输入正确答案:1
你再想想?你已经错误的输入了1次 1 了
你输错了1次1了。
****请在这里是输入正确答案:1
你再想想?你已经错误的输入了2次 1 了
你输错了2次1了。
****请在这里是输入正确答案:3
你太笨了。
你输错了2次1了。
****请在这里是输入正确答案:4
10 % 4的意思是,10除以4求余数。所以怎么可能等于4呢,假如被4整除,则值为0。
你输错了2次1了。
****请在这里是输入正确答案:5
怎么可能?
请在这里是输入正确答案:2
你输错了2次1了。
答案正确!
******结束*******
请按任意键继续. . .
总结:
①continue没有让while(a!=2)循环结束,但是break让其结束了。原因在于continue只会跳过下面的部分进行重新循环,而break会直接破掉循环。
②对于for循环,例如for(i=0;i<5;i++)循环内使用continue之后,会直接进行i++(循环更新语句),然后进行循环判断(i<5)。
③对于while循环,例如while(a<5),在循环内使用while后,会直接进行a<5的判断(循环判断语句)。
goto语句:
goto语句的特点是,直接跳到对应的语句,然后向下执行。
goto语句的格式为:
一个标志(例如abc):(←这里是冒号)
goto 标志(例如goto abc;)
例如代码:
#include<iostream>
int main()
{
using namespace std;
int i = 0;
ab: // 标志ab
i++;
if (i > 5) { goto de; } //跳到标志de
cout << "i = " << i << endl;
goto ab; //跳到标志ab
de: //标志de
cout << "i 现在等于 " << i << "了。" << endl;
cout << "i + 10 = " << i + 10 << endl;
system("pause");
return 0;
}
输出:
i = 1
i = 2
i = 3
i = 4
i = 5
i 现在等于 6了。
i + 10 = 16
请按任意键继续. . .
总结:
虽然goto 很方便,但按照推荐说法是,不推荐使用goto语句。而是应该使用if、while、for、switch、continue等结构化控制语句。
至于为什么。。。不是很清楚,据说是因为容易导致代码混乱,不如if、while等清晰,也易读和进行修改。