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等清晰,也易读和进行修改。