深入c语言continue和break的区别详解

2016-02-19 09:10 3 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是深入c语言continue和break的区别详解,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

自认为C语言还算入门的人,看来还是高估自己了.没想到在这个地方还有这么有趣的东西.有些话看来要仔细深究才能真正入门啊....

================================================================================
代码如下:

#include stdio.h
int main(void)
{
   int flag=0;
   for(int j=0; j 2; j++) {
      if(j==0) {
         switch(j) {
            case 0:

            continue;
         }
         flag=1;
      }
   }
   printf( " flag:%dn ",flag);
}

输出:
flag:0

如果代码为:
case 0: break;
输出:
flag:1

======================================================================

再看:
代码如下:

#include stdio.h

void main()
{
   int flag = 0;
   int j = 0 ;
   for(j=0; j 2; j++) {
      if(j==0) {
         if(j==0) {
            continue;

         }
         flag=1;

      }

   }
   printf( " flag:%dn ",flag);
}

输出:
flag:0

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

如果代码为:
break;
输出:
flag:0

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

==========================================

在C语言书中,对于continue和break是这么描述的:

break语句可以从最内层的循环或者switch语句中退出.

continue语句只能出现在for, while, do循环中

=========================================

结论:continue只对直接包含它的循环体有效(也就是for,while, 而switch{}中的不算循环体);而break有效的是直接包含它的for,while,switch块。

比如在不包含switch的代码中出现break或者continue,那么break跳出循环体,而continue跳出本次循环.

而对于在循环中嵌套switch语句的代码中,break仅跳出最内层的块,这个块若是switch,就仅跳出switch.

而continue即使出现在switch块中,因为continue的作用范围仅针对 for while 之类的循环语句,故不起作用,依旧跳出本次循环.

不注意的话也会认为同样是跳出switch语句块了.

来源:http://www.tulaoshi.com/n/20160219/1589798.html

延伸阅读
前言:本文书写的格式与其它不相同。本文题目说是关于C++ API的思考,其实也不仅仅是C++,对于其它语言同样适用。 API实际是指Application Programming Interface,应用程序编程接口。对API是一套用来控制Windows的各个部件的外观和行为的一套预先定义的Windows函数。在C++中我认为:一个API就是一堆类以及类中方法和字段的集合。 并不是所有的...
做项目中经常用到String和StringBuilder,String可以用“+”来对字符串进行拼接,StringBuilder用append进行拼接,一直不明白既然可以用String,问什么还要用StringBuilder。尽管在做数据库查询的时候,习惯性的用了StringBuilder对查询语句进行拼接,但仍然不知道原因。今天看视频的时候,又看到了StringBuffer,感觉用法又差不多,所以特意查...
Linq项目简介和开发环境的搭建   9月份,微软推出了一项名为“Linq项目”的新技术,用于在.NET语言中集成数据查询的功能。您可以从http://msdn.microsoft.com/netframework/future/得到Linq项目的技术预览版,其中包括大量的介绍文章(英文)和C# 3.0以及VB 9.0的编译器。   Linq项目英文全称为Langu...
一个代码: 代码如下: #includestdio.h #includestdlib.h #define uchar unsigned char #define uint unsigned int void display(uchar *p); char h[4] = {'A','B','C','\0'}; char e[4] = {'E','F','L','\0'}; char l[4] = {'M','N','O','\0'}; char o[4] = {'X','Y','Z','\0'}; int main(void) {     int i;  &nbs...
类(class)是C#类型中最基础的类型。类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。使用类声明可以创建新的类。类声明以一个声明头开始,其组成方式如...

经验教程

298

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部