当前位置: 首页 > news >正文

C语言循环控制语句Break,goto,continue语句讲解

循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。

C 语言中 break 语句有以下两种用法:

当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
它可用于终止 switch 语句中的一个 case。
如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

语法
C 语言中 break 语句的语法:
在这里插入图片描述

break;

流程图
在这里插入图片描述

实例

#include <stdio.h>int main ()
{/* 局部变量定义 */int a = 10;/* while 循环执行 */while( a < 20 ){printf("a 的值: %d\n", a);a++;if( a > 15){/* 使用 break 语句终止循环 */break;}}return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15

C 语言中的 continue 语句有点像 break 语句。

但它不是强制终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。

对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句重新执行条件判断语句。

语法
在这里插入图片描述

C 语言中 continue 语句的语法:


continue;

流程图
在这里插入图片描述

C continue 语句

实例

#include <stdio.h>int main ()
{/* 局部变量定义 */int a = 10;/* do 循环执行 */do{if( a == 15){/* 跳过迭代 */a = a + 1;continue;}printf("a 的值: %d\n", a);a++;}while( a < 20 );return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。

注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

C 语言中 goto 语句的语法:

goto label;
..
.
label: statement;

在这里,label 可以是任何除 C 关键字以外的纯文本,它可以设置在 C 程序中 goto 语句的前面或者后面。
在这里插入图片描述

流程图
在这里插入图片描述

C goto 语句

#include <stdio.h>int main ()
{/* 局部变量定义 */int a = 10;/* do 循环执行 */LOOP:do{if( a == 15){/* 跳过迭代 */a = a + 1;goto LOOP;}printf("a 的值: %d\n", a);a++;}while( a < 20 );return 0;
}

实例

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

http://www.lryc.cn/news/25102.html

相关文章:

  • Zabbix“专家坐诊”第183期问答汇总
  • 以太网协议和DNS
  • 【设计模式】原型模式与建造者模式
  • QT之Http请求
  • 何谓dB , dB怎么理解?
  • 【数据聚类|深度聚类】Unsupervised Deep Embedding for Clustering Analysis(DEC)论文研读
  • Nuxt.js项目开发过程遇到的问题以及对Nuxt.js的学习与总结
  • JavaSE:异常机制
  • Go mockito 使用说明 (github/mockey)
  • Spring Boot+Vue前后端分离项目练习01之网盘项目的搭建
  • 超详细MySQL(免安装版)安装与配置
  • STM32F1,F4,L1系列禁止JTAG和SW引脚方法
  • NVIDIA CUDA初级教程视频学习笔记1
  • CEC2005:星雀优化算法(Nutcracker optimizer algorithm,NOA)求解CEC2005(提供MATLAB代码)
  • 工作实战之密码防重放攻击
  • 如何编写测试用例?
  • 5.排序算法之二:选择排序
  • Ubuntu18系统安装:node及node版本管理工具nvm部署前端项目
  • 统计学 假设检验
  • 【C++】哈希
  • 「TCG 规范解读」PC 平台相关规范(3)
  • 这篇教你搞定Android内存优化分析总结
  • 概率论与数理统计期末小题狂练 11-12两套,12-13-1
  • golang对字符串的处理操作 如何正确理解 rune byte和string
  • 软件项目管理简答题复习(1)
  • 云Windows Server 2022 Datacenter 安装MySQL8解压缩版 mysql-8.0.32-winx64 230301记录
  • 如何使用BeaconEye监控CobaltStrike的Beacon
  • STM32开发(17)----CubeMX配置CRC
  • 【MySQL】基础操作:登录、访问、退出和卸载
  • 【算法经典题集】递推(持续更新~~~)