continue
1、结束本次循环,继续下次循环,并且进行条件判断;
2、不可作用于switch语句。当在switch中使用,这个continue实际是作用于其所属的循环结构;若它不属于任何一个循环,程序将因此报错!
break
1、结束本次循环,并停止下次循环条件判断;
2、可以作用于switch语句。开关语句中,执行switch语句之后的代码。

1. continue

continue 可用于 C 提供的全部三种循环结构。continue 会致使循环跳过循环体中余下的语句,转而判断循环条件是否仍然成立,然后选择是否再次进入循环体。如果 continue 位于循环嵌套中的一个内循环,则其仅能影响该内循环的执行情况,而不会对外循环造成任何影响。例如:

#include <stdio.h>

int main(void)
        {
            int i, j, total;

do
            {
                printf("Please enter an integer: ");
                scanf("%d", &i);

if ( i == 0 )
                {
                    printf("Zero is not allow.\n");
                    continue;
                }

for ( j = 1, total = 0; j <= i; ++j )
                {
                    if ( j % 5 )
                    {  
                        continue;
                    }
                    ++total;
                }
                printf("Total: %d\n", total);
            } while ( i ) ; 
        }

我们先来分析一下内循环。假设用户输入的是 5,则内循环的前四次循环中,j % 5 都为真,然后执行 continue; 跳过循环体中余下的语句,直接执行 ++j,继而判断 j <= i 的真假性,从而选择是否再次进入循环体。本内循环中,因为 continue 的关系,前四次循环 ++total; 都会被跳过。第五次循环 j % 5 为假,不会执行 continue; ,++total; 终于得以被执行。

外循环中,假设用户输入 0,则 i == 0 为真,continue; 得以被执行,因此跳到 while ( i ),因为 i 为假,故外循环结束。如下图所示:

请注意,本例中的内循环完全是出于演示目的才用 continue 的,这使代码复杂化了,有违 continue 的初衷。continue 是为了简化代码而生的!本例中的内循环如果不使用 continue,代码将会更简单:

for ( j = 1, total = 0; j <= i; ++j )
        {
            if ( j % 5 == 0 )
            {
                ++total;
            }                   
        }

记住,continue 是为了简化代码而生的!使用前请斟酌使用它是否能简化代码,如果不能,则不要用。

其实本例中的外循环也可以不用 continue。以下代码没有使用 continue,但其功能和上面使用 continue 的那段代码完全一样。

do
        {
            printf("Please enter an integer: ");
            scanf("%d", &i);

if ( i == 0 )
            {
                printf("Zero is not allow.\n");
            }
            else
            {
                for ( j = 1, total = 0; j <= i; ++j )
                {
                    if ( j % 5 == 0 )
                    {
                        ++total;
                    }                   
                }
                printf("Total: %d\n", total);
            }

转载于:https://www.cnblogs.com/hnrainll/archive/2011/08/10/2133657.html

continue和break语句的区别相关推荐

  1. 循环体中continue、break语句的使用

    一.用法 1)break语句通常用在循环语句和开关语句中.当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句:如果没有break语句,则将成为一个死循环而无 ...

  2. 循环中的continue与break语句

    文章目录 前言 一.break语句 二.continue语句 总三:嵌套循环中的break和continue 总结 前言 回顾上一篇文章中学到的循环我们知道,循环主要做的一件事情利用机器强大的执行能力 ...

  3. break, continue, goto, return语句详解

    关于break,continue,goto,return语句区别详解(所有语言通用的语法知识) 一.break 1. break语句形式: break; 2. break语句功能: A. switch ...

  4. shell之case和循环语句(case语句的格式与举例)(for循环,while循环until循环语句的详解和continue,break解释, 九九乘法口诀表 ,等腰三角形)

    文章目录 shell编程之case语句与循环语句(for,while) case多分支语句 case语句的实例 使用for循环语句 for语句实例 用循环语句输出1-10的数字的五种办法 计算偶数/奇 ...

  5. Shell脚本循环语句及exit、continue和break用法

    目录 一.for循环语句 二.while循环语句结构 三.until 循环语句结构 四.exit.continue和break 一.for循环语句 用法: 读取不同的变量值,用来逐个执行同一组命令 f ...

  6. continue和break的区别(continual和continuous的区别)

    breakinon和breakin的区别? breakinonorupon,toenterwithforceuponoraccidentallyinterrupt;intrudeupon:Exampl ...

  7. c语言break在if中用法,break可用于什么语句 break语句可用于for语句和if语句中 对吗...

    c语言中break语句的作用 C语言中,break都可以用在什么地方?用到每一个语...break 一般是针对一个循环或者switch中的case,表示跳出当前的循环或选择,即在一个单层循环中,可以通 ...

  8. phpbreak跳出几层循环_4.2.5 PHP break语句跳出循环

    Posted by 撒得一地 on 2016年2月28日 in PHP入门教程 国外稳定加速器推荐 vypr | Nord 在使用循环语句时,有时不确定循环的次数,遇到这样的情况可以使用无限循环,如: ...

  9. 8.6 循环辅助:continue和break

    C语言学习栏目目录 目录 1 continue语句 2 break语句 源码 一般而言,程序进入循环后,在下一次循环测试之前会执行完循环体中的所有语句.continue 和break语句可以根据循环体 ...

最新文章

  1. 实战:基于深度学习和几何的3D边界框估计
  2. PHP判断文件是否被引入的方法get_included_files
  3. Django学习(2)数据宝库
  4. 日期时间函数(1)-time()gmtime()strftime()localtime()
  5. 利用 Arthas 解决启动 StandbyNameNode 加载 EditLog 慢的问题
  6. qt 文件 时间 倒序排列_win7电脑敬业签便签软件分类标签里的内容如何按提醒时间排列?...
  7. 深度学习85—[深度学习] 感知器
  8. 计算机编程工程师理论知识,结构工程师基础知识点:程序设计语言
  9. Jenkins持续集成 之 Jenkins安装
  10. 2012年4月18日 新的开始
  11. java pdf 首页 缩略图_Java中将上传的文件首页生成缩略图(先将上传的文件转成pdf,然后将pdf转成jpg)...
  12. 字体大小 js 控制
  13. cordova build android很慢,cordova build --release android命令打包下载gradle非常慢的问题...
  14. Tkinter Frame size
  15. OMNeT++ ALOHA sample代码阅读
  16. layui表格使用复选框批量删除_LayUI表格批量删除方法
  17. 系统服务器更换技术方案,通道设备监控服务器更换 专项工程施工组织方案
  18. journalctl基本介绍
  19. 听见丨三星Bixby中文(普通话)版正式发布 云端服务商Scalyr获2000万美元A轮融资
  20. CSDN 创始人蒋涛:开源吞噬世界,得开发者得天下

热门文章

  1. Maven修改默认本地资源库文件夹
  2. 【BZOJ3555】[Ctsc2014]企鹅QQ hash
  3. psp进度(11月25号-31号)
  4. python 登陆开心网图片批量下载-selenium实现
  5. 调用另一个Activity
  6. 万变不离其中----SQL必记语法
  7. Windows的位图alpha混合技术
  8. java map 迭代删除元素,java – 如何在迭代时删除和添加元素到TreeMap?
  9. openssh windows_WINDOWS环境配置SSH服务
  10. 骨架提取的MATLAB实现