C语言break具体探秘

C 专栏收录该内容
16 篇文章 0 订阅

在学习c时,依稀记得书上说的是break可以终止最近的一层循环以及switch,由于书中所说的循环并不是很清楚是if while

还是switch,这一次在作一个实验时正好用到了break,因此想一探究竟,

当使用while循环时

#include<stdio.h>
void main(void)
{
	int i=0;
	while(1)
	{	
		printf("break:%d\n",i++);
		break;
	}
}

输出

hicool@hicool:~/文档/c/break$ ./break 
break:0

当使用for循环时

#include<stdio.h>
void main(void)
{
	int i=0;
	for(i=0; i<999; i++)
	{	
		printf("break:%d\n",i++);
		break;
	}
}

输出

hicool@hicool:~/文档/c/break$ ./break 
break:0

当使用if时

#include<stdio.h>
void main(void)
{
	int i=0;
	if(i<5)
	{	
		printf("break:i%d\n",i++);
		break;
}
}
breaktring.c:8:3: error: break statement not within loop or switch
   break;
   ^~~~~

当使用while循环嵌套时

#include<stdio.h>
void main(void)
{
	int i=0;
	int j=0;
	while(i<5)
		{
		while(j<5)
		{	
		printf("break:i%d\tj%d\n",i++,j++);
		break;
	}
}
}

 

当使用for嵌套循环时

#include<stdio.h>
void main(void)
{
	int i=0;
	int j=0;
	for(i=0; i<5; i++)	
	{
	    for(j=0; j<5; j++)
	    {	
		printf("break:i%d\tj%d\n",i,j);
		break;
	    }
        }
}

 

当时用while与for嵌套时

#include<stdio.h>
void main(void)
{
	int i=0;
	int j=0;
	while(i<5)
		{
		for(j=0; j<5; j++)
		{	
		printf("break:i%d\tj%d\n",i++,j);
		break;
	}
}
}

输出均为

hicool@hicool:~/文档/c/break$ ./break 
break:i0	j0
break:i1	j1
break:i2	j2
break:i3	j3
break:i4	j4

if与while搭配时

#include<stdio.h>
void main(void)
{
	int i=0;
	int j=0;
	while(j<5)
	{
	if(i<5)
	{	
		printf("break:i%d\tj%d\n",i++,j++);
		break;
}
}
}

输出

hicool@hicool:~/文档/c/break$ ./break 
break:i0	j0

因此,宗上,break只能终止最近的一层for或者while循环,而if不属于循环结构

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值