while循环与中断语句break、continue、return以及goto的使用

本文探讨了在C++编程中,while循环与break、continue、return和goto语句的组合使用。重点讲述了它们在控制循环流程和函数退出上的不同作用,例如break用于直接退出循环,continue结束当前循环并继续下一次,return不仅退出循环还结束整个函数,而goto则实现无条件跳转。此外,还比较了exit()函数与return在程序结束时的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原创:https://blog.csdn.net/liebecl/article/details/76167106

由于程序的复杂性需要 我们在一个程序中建立许许多多的嵌套语句进行程序的搭建 这就导致了如何跳出循环成为了一个重要的环节

现在就来总结下while与break、continue、return以及goto一起使用的案例


注意

1.break语句用于do-while、for、while循环语句中时,可使程序终止循环
2.break语句对if-else的条件语句不起作用
3.在多层循环中,一个break语句只向外跳一层
4.在 C语言 的 switch(开关语句)中,break 语句还可用来在执行完一个 case(分支)后立即跳出当前 switch 结构


(1)while与break:直接跳出整个循环体

break语句的使用场合主要是switch语句和循环结构 在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构

while(flag<5)
{
	flag++;
	if(flag == 4)
	{
		break;
	}
	printf("flag = %d.\n",flag)
}

当flag=4,直接跳出while循环


(2)while与continue:直接跳出本次循环,继续执行下次循环

continue语句是这5种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,所以在使用continue的时候要注意这一点

while(flag<5)
{
	flag++;
	if(flag == 4)
	{
		continue;
	}	
	printf("flag = %d.\n",flag);
}

当flag=4,直接跳出本次循环,接着判断while循环的条件


(3)while与return:直接跳出整个函数

如果在程序中遇到return语句,那么代码就退出该函数的执行,返回到函数的调用处,如果是main()函数,那么结束整个程序的运行

void func(void)
{
	while(flag<5)
	{
		if(flag == 4)
		{
			flag++;
			return;
		}
	printf("flag = %d.\n",flag);
	}
}

当flag=4,直接跳出循环和函数func()


(4)while和goto:直接goto到某个地方继续执行

void func(void)
{
	while(flag<5)
	{
		if(flag == 4)
		{
			goto EXIT;
		}
		printf("flag = %d.\n",flag);
	}
	EXIT:return;//EXIT:可以指向任何执行语句 例如EXIT:cout<<"程序结束";
}

goto到EXIT的地方继续执行函数


exit()函数

exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的


exit函数和return的主要区别

1.exit(); 是整个程序的结束 return();是某个函数的结束,并返回结果
2.exit 是一个函数 return返回函数值,是关键字
3.exit是系统调用级别的,它表示了一个进程的结束 return是语言级别的,它表示了调用堆栈的返回
4.exit是操作系统提供的(或者函数库中给出的) return是C语言提供的

非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的


void func(void) 
{
	while (flag < 5) 
	{
		flag++;
		if (flag == 4)
		{
			exit(1);
		}
		printf("flag = %d.\n", flag);
	}
}

当flag=4,跳出循环并结束程序进程 返回值为非正常值

源自-C++类和对象项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值