2.C语言——控制语句

控制语句

  • ==1.分支语句/判断语句==
    • if 语句
    • if...else 语句
    • if...else if...else语句
    • switch语句
  • ==2.循环语句==
    • while 语句
    • do...while 语句
    • for 语句
  • ==3.转向语句==
    • break
    • continue
    • go to

1.分支语句/判断语句

if 语句

if(boolean_expression)
{
/* 如果布尔表达式为执行的语句 */
}

在这里插入图片描述

if…else 语句

if(boolean_expression)
{
/* 如果布尔表达式为真将执行的语句 /
}
else
{
/
如果布尔表达式为假将执行的语句 */
}

在这里插入图片描述

if…else if…else语句

if(boolean_expression 1)
{
/* 当布尔表达式 1 为真时执行 /
}
else if( boolean_expression 2)
{
/
当布尔表达式 2 为真时执行 /
}
else if( boolean_expression 3)
{
/
当布尔表达式 3 为真时执行 /
}
else
{
/
上面条件都不为真时执行 */
}

在这里插入图片描述

switch语句

switch(expression){
    case constant-expression :
        statement(s);
         break; /* 可选的 /
    case constant-expression :
         statement(s);
         break; /
可选的 /
/
您可以有任意数量的 case 语句 /
    default : /
可选的 */
        statement(s);
}

switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。(case穿透现象)
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的

在这里插入图片描述

2.循环语句

while 语句

while(condition)
{
    statement(s);
}
//直到条件不满足才退出循环

在这里插入图片描述

do…while 语句

do{
    statement(s);
}while( condition );

   
条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次
如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。

在这里插入图片描述

for 语句

for ( init; condition; increment )
{
      statement(s);
}

下面是 for 循环的控制流:

  • init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
  • init 接下来,会判断 condition。如果为真,则执行循环主体如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句
  • init 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
  • init 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

在这里插入图片描述

3.转向语句

break

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

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

在这里插入图片描述

continue

C 语言中的 continue 语句有点像 break 语句。但它不是强制终止continue 会跳过当前循环中的代码,强迫开始下一次循环。
对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句重新执行条件判断语句。

在这里插入图片描述

go to

goto label;
..
.
label: statement;

C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/242915.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5112C PWM调光 无频闪 高性价比 支持12V 24V 36V 48V 60V 72V 内置MOS

PWM调光芯片是一种常用于LED调光控制的芯片,其工作原理如下: 脉冲宽度调制(PWM):PWM是一种调制技术,通过改变信号的脉冲宽度来控制输出信号的平均功率。在PWM调光中,芯片会以一定的频率产生一系…

ArcGIS Pro 标注牵引线问题

ArcGIS Pro 标注 模仿CAD坐标牵引线问题 右键需要标注的要素,进入标注属性。 选择背景样式 在这里有可以选择的牵引线样式 选择这一个,可以根据调整间距来进行模仿CAD标注样式。 此图为cad样式 此为调整后gis样式 此处可以调整牵引线的样式符号 …

Qt6入门教程 8:信号和槽机制(连接方式)

目录 一.一个信号与槽连接的例子 二.第五个参数 1.Qt::AutoConnection 2.Qt::DirectConnection 3.Qt::QueuedConnection 4.Qt::BlockingQueuedConnection 5.Qt::UniqueConnection 三.信号 四.connect函数原型 五.信号与槽的多种用法 六.槽的属性 一.一个信号与槽连接…

Kotlin 移动端多平台

支持多平台编程是 Kotlin 的主要优势之一。它减少了为不同平台编写和维护相同代码所花费的时间,同时保留了本机编程的灵活性和优势。 1. 基本概念 KMM:Kotlin Multiplatform for mobile(移动设备的 Kotlin 多平台) KMM 多平台的主…

面试题:简单说一下阻塞IO、非阻塞IO、IO复用的区别 ?

文章目录 前言一、什么是IO二、阻塞IO模型三、非阻塞 IO模型四、IO复用模型总结 前言 在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三…

配置DNS主从服务器,实现真反向解析

主服务器 [rootbogon ~]# systemctl stop firewalld.service #关闭防火墙 [rootbogon ~]# setenforce 0 #关闭selinux [rootbogon ~]# systemctl restart named #启动dns服务 [rootbogon ~]# vim /etc/named.conf #进入dns配置文件 options {#监听…

Java-NIO篇章(4)——Reactor反应器模式

前面已经讲过了Java-NIO中的三大核心组件Selector、Channel、Buffer,现在组件我们回了,但是如何实现一个超级高并发的socket网络通信程序呢?假设,我们只有一台内存为32G的Intel-i710八核的机器,如何实现同时2万个客户端…

MySQL索引优化:深入理解索引下推原理与实践

随着MySQL的不断发展和升级,每个版本都为数据库性能和查询优化带来了新的特性。在MySQL 5.6中,引入了一个重要的优化特性——索引下推(Index Condition Pushdown,简称ICP)。ICP能够在某些查询场景下显著提高查询性能&a…

PPT 编辑模式滚动页面不居中

PPT 编辑模式滚动页面不居中 目标:编辑模式下适应窗口大小、切换页面居中显示 调整视图大小,编辑模式通过Ctrl 鼠标滚轮 或 在视图菜单中点击适应窗口大小。 2. 翻页异常,调整视图大小后,PPT翻页但内容不居中或滚动&#xff0c…

革新区块链:代理合约与智能合约升级的未来

作者 张群(赛联区块链教育首席讲师,工信部赛迪特聘资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问)关注张群,为您提供一站式区块链技术和方案咨询。 代理合约(Prox…

WordPress怎么禁用文章和页面古腾堡块编辑器?如何恢复经典小工具?

现在下载WordPress最新版来搭建网站,默认的文章和页面编辑器,以及小工具都是使用古腾堡编辑器(Gutenberg块编辑器)。虽然有很多站长说这个编辑器很好用,但是仍然有很多站长用不习惯,觉得操作太难了&#xf…

JAVA之常用集合框架

java中的常用集合是对数据进行存储以及相关操作的api。常用的有ArrayList、LinkedList、Vector、HashSet、TreeSet、TreeMap、HashMap ArrayList 数据结构 ArrayList的本质是一个数组 ,那么它就具有数组的所有特性 可以根据下标快速查找值 ArrayList是如何实现动…

路由器初始化配置、功能配置

实验环境 拓扑图 Ip规划表(各组使用自己的IP规划表) 部门 主机数量 网络地址 子网掩码 网关 可用ip Vlan 市场部 38 192.168.131.0 255.255.255.0 192.168.131.1 2-254 11 研发部 53 192.168.132.0 255.255.255.0 192.168.132.1 2-2…

弹性调度助力企业灵活应对业务变化,高效管理云上资源

作者:吴昆 什么是弹性调度 云计算时代,企业可以通过云平台获得大量计算资源,并根据业务发展和流量需求的实时变化,灵活调整使用的资源类型与资源量。阿里云提供了多种弹性资源,如云服务器 ECS 和弹性容器实例 ECI&am…

SpringBoot解决Slow HTTP慢速攻击漏洞

项目场景: 扫描到的漏洞截图: 攻击原理: Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送…

SpringCloud Aliba-Sentinel【上篇】-从入门到学废【4】

🎵诗词分享🎵 大江东去,浪淘尽,千古风流人物。 ——苏轼《念奴娇赤壁怀古》 目录 🍿1.Sentinel是什么 🧂2.特点 🧈3.下载 🌭4.sentinel启动 🥓5.实例演示 1.Senti…

Java代码审计Shiro反序列化CB1链source入口sink执行gadget链

目录 0x00 前言 0x01 CC链&CB链简介 1. Commons Collections链是什么? 2. Commons BeanUtils链是什么? 0x02 测试Commons BeanUtils1链 0x03 Shiro550 - Commons BeanUtils1链 - 跟踪分析(无依赖) 1. 前置知识 2. Co…

【每日一题】按分隔符拆分字符串

文章目录 Tag题目来源解题思路方法一:遍历方法二:getline 写在最后 Tag 【遍历】【getline】【字符串】【2024-01-20】 题目来源 2788. 按分隔符拆分字符串 解题思路 方法一:遍历 思路 分隔符在字符串开始和结束位置时不需要处理。 分隔…

设计模式设计原则——依赖倒置原则(DIP)

DIP:Dependence Inversion Principle 原始定义:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions。 官…

【正点原子STM32】搭建开发环境(安装MDK和器件支持包、DAP仿真器和ST LINK仿真器、CH340串口驱动)

一、常用开发工具简介 MDKDAP 二、安装MDK 1、MDK简介2、如何获取MDK3、安装MDK和器件支持包 三、安装仿真器驱动 DAP仿真器免驱ST LINK仿真器驱动安装方法 ST LINK驱动及教程 四、安装CH340 USB虚拟串口驱动 1、安装CH340 USB虚拟串口驱动2、为什么要安装CH340 USB虚拟…