(八十七)break和continue语句、以及goto语句

简介:

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


目录
相关文章
|
2月前
break语句和continue语句的区别
break语句和continue语句的区别
10 0
|
2月前
break语句和continue语句
break语句和continue语句
9 0
|
4月前
|
存储 数据可视化 C#
C# Break 和 Continue 语句以及数组详解
它被用于“跳出” switch 语句。 break 语句也可用于跳出循环。 以下示例在 i 等于 4 时跳出循环: 示例:
57 0
|
5月前
|
存储 C语言 索引
深入解析 C 语言中的 for 循环、break 和 continue
当您确切地知道要循环执行代码块的次数时,可以使用 for 循环而不是 while 循环
183 0
|
5月前
break和continue语句
break和continue语句
29 0
|
7月前
|
C语言
for和do-while循环以及break和continue语句
for和do-while循环以及break和continue语句
45 0
|
11月前
|
Python
16.从入门到精通:range() 函数 break 和 continue 语句及循环中的 else 子句 break语句 continue语句 循环中的else子句 pass 语句
16.从入门到精通:range() 函数 break 和 continue 语句及循环中的 else 子句 break语句 continue语句 循环中的else子句 pass 语句
Continue 语句
Continue 语句
36 0
Break 语句
Break 语句
30 0
|
Java
case 语句块中没有 break 语句
case 语句块中没有 break 语句
259 0