首先说明: continue 只能用于循环语句中,而break可用于循环和多重选择 switch 语句,两者都是辅助循环;尽管如此,如果 switch 语句在一个循环中,continue便可作为 switch 语句的一部分;这种情况下,就像在其他循环中一样,continue 让程序跳出循环的剩余部分,包括 switch 语句的其他部分。

一般而言,程序进入循环后,在下一次循环测试之前会执行完循环体内部的所有语句。而continue和break语句可以根据循环体内部的测试结果来忽略一部分循环内容,甚至结束循环。

c 语言中循环语句有 3 种:while();        do     while();            for;且 3 种循环都可以使用 continue 和 break 语句

对于continue语句,执行到该语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代;但是若 continue 语句在嵌套循环的内部,则只会影响包含该语句(即 continue 语句)的内层循环(即内层循环的后面的语句不会被执行,而跳出内层循环后,外层循环内部的语句正常执行。);

然而对于 while() 和 do  while() 循环,执行 continue 语句后的下一个行为是对循环的测试表达式求值,看代码实例:

#include <stdio.h>int main() {//while()char CH;int count=0;while(count < 10){CH = getchar();if(CH != ' ')continue;putchar(CH);count++;}printf("Hello, World!\n");return 0;
}

对于 for 循环,执行 continue 之后的下一个行为是对更新表达式求值,然后是对循环测试表达式求值,下面的代码示例包括了嵌套循环中使用 continue 的情形:

#include <stdio.h>int main() {char ch;int cunt;int i;for(cunt=0;cunt<10;cunt++){ch = getchar();for(i=0;i<5;i++){if (ch != ' ')continue;putchar(ch);printf("我是内层循环的---小可爱!!!\n");}printf("我是外层循环的---小可爱!!!\n");printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");}printf("Hello, World!\n");return 0;
}

对于 break 语句:

程序执行到循环中的break语句时,会终止包含它的循环,并继续执行下一阶段;若break位于嵌套循环内部,它只影响包含它的当前循环。

比较 break 和 continue 对程序执行的不同之处,看下图:

continue:

break:

下面看代码 while 示例:

#include <stdio.h>int main() {//while()char CH;int count=0;while(count < 10){CH = getchar();if(CH != ' ')break;putchar(CH);count++;}printf("Hello, World!\n");return 0;
}

for循环及嵌套循环示例:

注: 只会直接跳出内层循环,外层循环正常执行

#include <stdio.h>int main() {char ch;int cunt;int i;for(cunt=0;cunt<10;cunt++){ch = getchar();for(i=0;i<5;i++){if (ch != ' ')break;putchar(ch);printf("我是内层循环的---小可爱!!!\n");}printf("我是外层循环的---小可爱!!!\n");printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");}printf("Hello, World!\n");return 0;
}

要想外层循环一并终止;需要在外层在使用 break;

#include <stdio.h>int main() {char ch;int cunt;int i;for(cunt=0;cunt<10;cunt++){ch = getchar();for(i=0;i<5;i++){if (ch != ' ')break;putchar(ch);printf("我是内层循环的---小可爱!!!\n");}if (ch != ' ')break;printf("我是外层循环的---小可爱!!!\n");printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");}printf("Hello, World!\n");return 0;
}

在多重选择 switch 语句中使用 continue 和 break的示例:

/* animals.c -- uses a switch statement */
#include <stdio.h>
#include <ctype.h>
int main(void)
{char ch;printf("Give me a letter of the alphabet, and I will give ");printf("an animal name\nbeginning with that letter.\n");printf("Please type in a letter; type # to end my act.\n");while ((ch = getchar()) != '#'){if('\n' == ch)continue;if (islower(ch))     /* lowercase only          */switch (ch){case 'a' :printf("argali, a wild sheep of Asia\n");break;case 'b' :printf("babirusa, a wild pig of Malay\n");break;case 'c' :printf("coati, racoonlike mammal\n");break;case 'd' :printf("desman, aquatic, molelike critter\n");break;case 'e' :printf("echidna, the spiny anteater\n");break;case 'f' :printf("fisher, brownish marten\n");break;default :printf("That's a stumper!\n");}                /* end of switch           */elseprintf("I recognize only lowercase letters.\n");while (getchar() != '\n')continue;      /* skip rest of input line */printf("Please type another letter or a #.\n");}                        /* while loop end          */printf("Bye!\n");return 0;
}

在本例中 continue 的作用与上述类似,但是 break 的作用不同:它让程序离开 switch 语句,跳至switch语句后面的下一条语句;如果没有 break 语句,就会从匹配标签开始执行到 switch 末尾;

注:C语言中的 case 一般都指定一个值,不能使用一个范围;switch 在圆括号中的测试表达式的值应该是一个整数值(包括 char 类型);case 标签必须是整数类型(包括 char 类型)的常量 或 整型常量表达式( 即, 表达式中只包含整型常量)。不能使用变量作为 case 的标签

switch中有 break

switch 中 无break

C语言之continue和break用法学习笔记相关推荐

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

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

  2. x%3e=y%3e=z的c语言表达式,我的C语学习笔记-C语言教程(三).doc

    我的C语学习笔记- C语言教程(三) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  3. 《全面掌握Linux C语言嵌入式系统移植教程》学习笔记(Liunx速查简明)

    全面掌握Linux C语言嵌入式系统移植教程学习笔记(Liunx速查简明) 笔记前言: P3: shell命令简明 P4: vi /vim编辑器入门 P5:vi /vim编辑器扩展 P8: gcc编译 ...

  4. R语言实现关联规则与推荐算法(学习笔记)

    R语言实现关联规则 笔者前言:以前在网上遇到很多很好的关联规则的案例,最近看到一个更好的,于是便学习一下,写个学习笔记. 推荐算法中 物品-物品用关联规则: 人物-物品用协同过滤: 人-人用社会网络分 ...

  5. 《C语言程序设计》谭浩强-学习笔记以及课后习题答案(考前复习/考研/专升本)

    此笔记是几年前为了本人考试而学而写,今日回首感慨良多,便把尘封多年在旧电脑中的学习笔记翻出来分享给大家 此笔记参考书籍: <C语言程序设计>谭浩强 根据前九章内容主要知识点进行梳理 如果有 ...

  6. SQL语言的基本用法——学习笔记

    SQL语言的基本用法   结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系 ...

  7. SQL语言NULL用法学习笔记 (源自《SQL基础教程第2版》MICK 、孙淼、罗勇)

    一.算术运算(+.-. *. /) 包含NULL的算术运算中,不会报错且结果均为NULL.如: 5 + NULL: NULL / 9 ; NULL / 0 结果均为NULL 二.比较运算(=.< ...

  8. 《Go语言从入门到实战》学习笔记(1)——Go语言学习路线图、简介

    非常有幸在<极客时间>上看到<Go语言从入门到实战>这门课程,本课程的作者给出了较为详细的学习路线图,具体如下: 学习路线图  学习目的 个人学习的目的主要是了解Go语言的基本 ...

  9. python程序格式框架的描述_python 程序语言设计(嵩天)-学习笔记(第二章python 程序实例解析)...

    第 2 章 python 程序实例解析 学习目标: 掌握解决计算问题的一般方法. 掌握python语言的基本语法,包括缩进.变量.命名等. 掌握python语言绘制图形的一般方法. 了解python标 ...

最新文章

  1. Python 多进程的进程池pool运行时报错:ValueError: Pool not running
  2. 045_CSS3过渡
  3. 第四周课程总结及实验报告
  4. 基于深度学习的病理_组织病理学的深度学习(第二部分)
  5. jquery 字符串查找_JQuery、Vue等考点
  6. MacOS下MySQL配置
  7. 服务器版Windows7系统,windows7服务器版本
  8. python 原理 pdf_《深入浅出深度学习:原理剖析与Python实践》.pdf
  9. 使用npm-check-updates模块升级插件
  10. FlightGear Flight Simulator
  11. linux 内核头文件、内核库文件
  12. PowerDesigner安装教程
  13. 读django文档——nginx + uwsgi 部署django项目
  14. 历届试题 填字母游戏
  15. 汇率换算自然语言理解功能JAVA DEMO
  16. MATLAB编辑AWG波形,使用MATLAB和任意波形发生器创建高性能激励测试系统
  17. This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
  18. 泰坦尼克号生存预测 (Logistic and KNN)
  19. 小组取什么名字好_注册公司取什么名字好 八字起名大全
  20. KY-RTI分布仿真技术:附录2 大联邦(构建1000个成员的HLA/RTI仿真系统)

热门文章

  1. 生物力学计算机模拟,计算机模拟在跳台跳水起跳技术中生物力学分析.doc
  2. 百田游戏2014笔试题——找到有序序列中某个值第一次出现的位置,并打印
  3. 搭建vue前端脚手架
  4. 【BOOST C++字串专题11】Boost.Spirit(一)
  5. win7 docker的受难记——exit status 255的终极解决
  6. nslookup命令使用技巧
  7. cgb2110-day05
  8. 谷歌日历添加中国节假日
  9. flac格式如何转换为mp3,这3个方法超好用
  10. DVWA 之暴力破解攻击(Brute Force)