ITKeyword,专注技术干货聚合推荐

注册 | 登录

一起talk C栗子吧(第一百八十回:C语言实例--break到哪里)

talk_8 分享于 2016-08-02

推荐:一起talk C栗子吧(第一百六十回:C语言实例--套接字通信模型一)

各位看官们,大家好,上一回中咱们说的是基于AF_INET域数据报套接字通信的例子,这一回咱们说的例子是:套接字通信模型 。闲话休提,言归正转。让我们一起talk C

2020腾讯云“6.18”活动开始了!!!(巨大优惠重现!4核8G,5M带宽 1999元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1059

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

各位看官们,大家好,上一回中咱们说的是字符和字符串输出函数的例子,这一回咱们说的例子是:break到哪里 。闲话休提,言归正转。让我们一起talk C栗子吧! 看官们,我们这一回的主题是break到哪里,在介绍该主题前,我们先介绍一下break。break是C语言中的一个关键字,在其后面加上分号就构成break语句。啊!这就是一个语句?有看官表示吃惊。我要说的是:这确实是一个语句,break关键字总是这么单枪匹马地构成一条语句。虽然break关键字可以单枪匹马地构成语句,不过break语句总是和循环语句或者switch语句出现在一起。就像金老爷《神雕侠侣》中的黑风双煞,他们总是一起出现,而且让人闻风丧胆。哈哈,看官们别害怕,我们这里没有黑风双煞,我们只有和循环语句或者switch语句一起出现break语句。那么回到我们的主题中来,break语句到底break到哪里了? 要回答这个问题,我们需要把break语句和循环语句或者switch语句放在一起进行说明,因为它们总一起出现在程序中。循环语句或者switch语句,都有自己的作用域,也就是位于大括号范围中的内容。在这两种语句中使用break语句后就会跳出这两种语句的的作用域。我们通过例子来说明,方便大家理解。

int index = 0;

while(index < 5)

{

//do some thing

printf("index = %d \n",index);

index++;

if(index == 3)

{

puts("break loop: while ");

break;

}

}

puts("hello"); 在上面的例子中,while循环语句的作用域就是while语句本身和位于该语句下面大括号中的内容,在使用break语句后,就会跳出while语句的作用域,然后运行位于该作用域后的puts语句,此时它会在终端中输出”hello”。我们在例子中使用的是while循环语句,对于for或者do/while循环语句也是同样的原理,大家可以自己去分析并且动手试试,下面是程序的运行结果,请大家参考: index = 0 index = 1 index = 2 break loop: while

//index等于3时使用break语句跳出while循环hello

//运行while循环后的语句 我们介绍完break语句在循环语句中的例子,接下来举一个break语句在switch语句中的例子,请大家参考:

index = 3;

switch(index)

{

case 1:

//do some thing

puts("case 1 runing ");

break;

case 3:

//do some thing

puts("case 3 runing ");

break;

default:

//do some thing

puts("case default runing ");

break;

}

puts("hello"); 在上面的例子中,switch循环语句的作用域就是switch语句本身和位于该语句下面大括号中的内容,在使用break语句后,就会跳出switch语句的作用域,然后运行位于该作用域后的puts语句,此时它会在终端中输出”hello”。下面是程序的运行结果,请大家参考: case 3 runing

//运行case 3中的内容,然后使用break跳出switch语句hello

//运行switch语句后的语句 介绍到这里,我想大家已经明白了break语句break到哪里,接下来我们验证一下大家是不是真理解其中的含义,我们给大家演示一段代码。

index = 0;

while(index++ < 5)

{

推荐:一起talk C栗子吧(第一百七十三回:C语言实例--关闭终端中的缓冲功能一)

各位看官们,大家好,上一回中咱们说的是关闭终端中回显功能的例子,这一回咱们说的例子是:关闭终端中的缓冲功能 。闲话休提,言归正转。让我们一起talk C栗子

printf("index = %d \n",index);

switch(index)

{

case 1:

//do some thing

puts("case 1 running, break switch ");

break;

case 2:

//do some thing

puts("case 2 running, break switch ");

break;

default:

//do some thing

puts("default running, break switch ");

break;

}

if(index == 3)

{

//do some thing

puts("if/else breaking ");

break;

}

else

{

//do some thing

puts("if/else running ");

}

puts("loop: while running");

}

puts("hello"); 大家先阅读一下该程序,然后自己动手写出程序的运行结果。下面是程序的运行结果,大家和自己写出的结果对比一下,是不是一样呢?如果结果不一样,那么说明你没有真正理解break语句break到哪里。 index = 1 case 1 running, break switch

//break语句只是break到switch作用域外,if/else running loop: while running

//循环仍然在运行,说明break语句没有break到while循环作用域外index = 2 case 2 running, break switch if/else running loop: while runningindex = 3 default running, break switch if/else breaking //break语句break到while循环的作用域外hello

//运行while循环语句后的语句 结合上面的代码和程序的运行结果,我们可以看到,前面的例子中只是单一的while语句或者switch语句,而此处的代码中在while循环中嵌套了switch语句,相比之下会复杂一些。代码中在switch语句中使用了break语句,该语句只是break到了switch作用域外,然而switch语句仍然在while循环语句的作用域中,因此,它不会break到while循环语句外,这点在程序运行结果中体现为不断地执行switch语句中的case,直到index等于3时从if/else语句中的break跳出while循环的作用域。 通过这个例子,我们可以得出以下结论:break语句只能break到自身所在的使用域外,如果作用域有嵌套,那么它不会break到嵌套区域外。这么说可能比较抽象,我们做个简单的图示来说明: {

//作用域A

{

//作用域B

break;

//该break语句只能break到作用域B外,不会break到作用域A外;

}

break;

//该break语句可以break到作用域A外;} 看官们,我把本章回中的代码收集整理成一个文件,该文件位于我的资源中,大家可以点击这里下载使用。 各位看官,关于break到哪里的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。

推荐:一起talk C栗子吧(第一百三十四回:C语言实例--创建线程时的内存细节)

各位看官们,大家好,上一回中咱们说的是“创建进程时的内存细节”的例子,这一回咱们说的例子是:创建线程时的内存细节。闲话休提,言归正转。让我们一起talk C

各位看官们,大家好,上一回中咱们说的是字符和字符串输出函数的例子,这一回咱们说的例子是:break到哪里 。闲话休提,言归正转。让我们一起talk C栗子吧! 看官们,我们这一回的主题是break到

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。