0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技术干货驿站 ▏深入理解C语言:掌握C语言条件判断,从if到switch的应用

北京合众恒跃科技有限公司 2024-11-09 01:10 次阅读

编程中,条件判断语句是控制程序流程的核心元素之一。它们使得程序能够根据不同的输入和状态,做出相应的决策。特别是在C语言中,条件判断语句的使用极为广泛,涵盖了从简单的if语句到更复杂的switch语句和条件运算符。这些结构不仅增强了代码的灵活性,还提高了程序的可读性和可维护性。本文将深入探讨C语言中的主要条件判断语句,包括它们的语法、使用方法及实际应用,通过具体示例帮助读者更好地理解和掌握这些重要概念。

01#

一:什么是条件判断语句

判断结构要求指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

C 语言把任何非零和非空的值假定为true,把零或null假定为 false。


以下是C语言的三种条件判断语句:

5d656ba8-9df4-11ef-8084-92fbcf53809c.png

02#

二:if语句

(1):if语句

一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

5d732fa4-9df4-11ef-8084-92fbcf53809c.png

如果布尔表达式为 true ,则 if 语句内的代码块将被执行。如果布尔表达式为 false ,则 if 语句结束后的第一组代码(闭括号后)将被执行

编写一个简单的程序:

5d7a59f0-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5d8f4b80-9df4-11ef-8084-92fbcf53809c.png

(2):if...else 语句

一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。

5d9bf0f6-9df4-11ef-8084-92fbcf53809c.png

如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。


编写一个简单的程序:

5daa37ec-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5dbd990e-9df4-11ef-8084-92fbcf53809c.png

(3)if...else if...else语句

一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。

当使用 if...else if...else 语句时,以下几点需要注意:

l 一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。

l 一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。

l 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被执行。

编写一个简单的程序:

5dc90294-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5ddb4f58-9df4-11ef-8084-92fbcf53809c.png

(4)嵌套 if...else语句

在 C 语言中,嵌套 if...else 语句是合法的,可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。

编写一个简单的程序:

5de5f5ac-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5e00087a-9df4-11ef-8084-92fbcf53809c.png

03#

三:switch语句

(1):switch语句

switch 语句是一种有限制的控制流语句,它用于根据表达式的值执行不同的代码块。

一个 switch 语句允许测试一个变量等于多个值时的情况,每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

5e14802a-9df4-11ef-8084-92fbcf53809c.png

编写一个简单的程序:

5e1de94e-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5e2c50a6-9df4-11ef-8084-92fbcf53809c.png

l switch 后面的表达式的值将会与每个 case 后面的常量值进行比较,直到找到匹配的值或者执行到 default(如果存在)。

l 如果找到匹配的值,将执行相应 case 后面的代码块,然后跳出 switch 语句。

l 如果没有匹配的值,并且有 default,则执行 default 后面的代码块。

l 如果没有匹配的值,并且没有 default,则跳过整个 switch 语句直到结束。

(2):嵌套switch语句

可以在一个 switch 语句内使用另一个 switch 语句。

编写一个简单的程序:

5e412440-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5e4bd98a-9df4-11ef-8084-92fbcf53809c.png


推导一下流程:

l 第6行:开始时n=1,匹配下方case1

l 第8行:m自增1,此时m=3

l 第9行:由于没有break,继续执行n自增1,此时n=2

l 第10行:由于没有break,继续执行case3

l 第11行:此时匹配n=2

l 第14行:m自增1,n自增1,此时m=4 , n=3

l 第15行:由于存在break,退出该switch语句

l 第19行:m自增1,此时m=5

l 第20行:由于存在break,退出该switch语句

l 最终结果:m=5 , n=3

04#

四:条件运算符

我们在运算符部分提到了条件运算符 ? :,它是C语言唯一一个三目运算符,可以用来替代 if...else 语句。

其中,condition 、block1 和 block2 是表达式。

如果 condition 为真,则计算 block1 的值,结果即为整个表达式的值。如果 condition 为假,则计算 block2 的值,结果即为整个表达式的值。

5e54ec6e-9df4-11ef-8084-92fbcf53809c.png

编写一个简单的程序:

5e5d3d4c-9df4-11ef-8084-92fbcf53809c.png

运行结果为:

5e7057ce-9df4-11ef-8084-92fbcf53809c.png

关于更多嵌入式学习资料

将持续更新中

敬请期待

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136820
  • 运算符
    +关注

    关注

    0

    文章

    172

    浏览量

    11084
收藏 人收藏

    评论

    相关推荐

    C语言中if语句、if-else语句和switch语句详解

    C语言中,有三种条件判断结构:if语句、if-else语句和switch语句。
    发表于 08-18 16:36 1.2w次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>中if语句、if-else语句和<b class='flag-5'>switch</b>语句详解

    技术干货驿站深入理解C语言:基本数据类型和变量

    C语言中,数据类型和变量是编程的基础,也是理解更复杂概念的关键。数据类型决定了变量的内存分配、存储范围和操作方式,而变量则是存储数据的容器。本篇文章将从基本数据类型和变量两个方面,带你深入
    的头像 发表于 07-26 17:53 2127次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>干货</b><b class='flag-5'>驿站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>:基本数据类型和变量

    技术干货驿站深入理解C语言掌握程序结构知识

    的HelloWorld程序开始,让我们深入探讨C语言的程序构成和基本语法规则。一:C语言程序结构先来看一个简单的HelloWorld程序:一
    的头像 发表于 07-27 08:45 1383次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>干货</b><b class='flag-5'>驿站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>掌握</b>程序结构知识

    技术干货驿站深入理解C语言掌握常量,让你的代码更加稳固高效!

    C语言的世界中,常量是一种不可忽视的元素。无论你是在编写简单的代码,还是构建复杂的系统,常量都能为你的程序带来更高的稳定性和可靠性。在这篇文章中,我们将深入探讨C
    的头像 发表于 08-29 13:59 2866次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>干货</b><b class='flag-5'>驿站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>掌握</b>常量,让你的代码更加稳固高效!

    深入理解C语言比较有用的几个资料

    这里有三个对深入理解C语言的资料,觉得不错,分享一下
    发表于 08-07 21:37

    51单片机C语言讲义(谭浩强)以及深入理解C指针

    本帖最后由 发烧友之麒麟 于 2014-10-6 09:19 编辑 C语言讲义(谭浩强)及深入理解C指针,自己在用的资料,觉得写得挺好的就拿出来分享,需要的请回[attach]2
    发表于 10-02 17:05

    C语言有哪些应用

    ,WOELD!”,点亮单片机的LED等,大用来进行嵌入式系统开发、写操作系统和实现其他高级语言掌握C语言有助于我们学习其他编程
    发表于 07-20 06:58

    对栈的深入理解

    为什么要深入理解栈?做C语言开发如果栈设置不合理或者使用不对,栈就会溢出,溢出就会遇到无法预测乱飞现象。所以对栈的深入理解是非常重要的。注:动画如果看不清楚可以电脑看更清晰啥是栈先来看
    发表于 02-15 07:01

    为什么要深入理解

    [导读] 从这篇文章开始,将会不定期更新关于嵌入式C语言编程相关的个人认为比较重要的知识点,或者踩过的坑。为什么要深入理解栈?做C语言开发如
    发表于 02-15 06:09

    C++语言基础讲解视频Switch分支条件判断语句

    C++语言基础讲解视频Switch分支条件判断语句
    发表于 01-14 08:00 7次下载

    深入理解C指针(C/C++程序员进阶必备,透彻理解指针与内存管理)pdf

    深入理解C指针
    发表于 03-21 09:42 118次下载

    深入探索Linux中的C语言

    本章将深入探索 Linux 中的 C 语言。在本章中,我们将学到更多关于编译器、源码二进制程序的 4 个步骤、如何使用 Make 工具以
    的头像 发表于 03-14 16:48 1930次阅读

    嵌入式C语言的结构特点

    过程中,不论是基于寄存器开发还是基于库开发,深入理解掌握嵌入式C语言的函数、指针、结构体是学习STM32的关键。嵌入式C
    的头像 发表于 11-24 16:16 693次阅读
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>语言</b>的结构特点

    技术干货驿站深入理解C语言:编程高手必备,全方位解析运算符的核心技能!

    过程中发挥着重要作用,还对程序的性能和稳定性产生直接影响。继上一期对C语言常量的深入分析后,本文将进一步探讨C语言中的常用运算符,详细解析其
    的头像 发表于 09-18 15:56 353次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>干货</b><b class='flag-5'>驿站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>:编程高手必备,全方位解析运算符的核心技能!

    深入理解C语言:循环语句的应用与优化技巧

    能让你的代码更加简洁明了,还能显著提升程序执行效率。本文将详细介绍C语言中的三种常见循环结构——while循环、for循环和do...while循环,带你深入理解
    的头像 发表于 12-07 01:11 150次阅读
    <b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>:循环语句的应用与优化技巧