【C 语言】判断语句以及分支语句《详细讲解》
🪁 判断语句
判断语句顾名思义:是由我们打代码的人想让代码执行哪段语句,这就叫做是判断语句!
以程序员的角度上来说就是:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
C 语言把任何 非零 和 非空 的值假定为 true,把 零 或 null 假定为 false。
按照日常生活来举个例子:信号灯显示为绿色的时候,车辆是可以通过的;当信号灯转为红色的时候,车辆就必须要停止行驶。可见,信号灯给出了信号,人们通过不同的信号从而进行判断,然后更具自己的判断结果执行相对应的操作!
在 C 语言判断语句当中:表达式的值为假 false,那么就不执行里面语句的内容。当表达式的语句结果为真 ture 则执行表达式的值的内容。
下面是大多数编程语言中典型的判断结构的一般形式:
🍬 if 语句形式
简介:if 语句通过对表达式的值进行判断,根据判断的结果决定是不是要进行相对应的操作。格式如下:
if(表达式) 语句
当代码中表达式的值,如果表达式的值为真"turn",则执行后面的语句;如果表达式的值为假,则不执行后面的语句。
语句执行流程图:如下所示
🔥 if 语句的使用
如下示例
运行结果
🍬 双层 if 语句使用
如下示例
运行结果:(两次)
当然除了双层 if 语句的使用其实还有多层 if 语句得使用,这里就不再多说,实践一下。
🍬 if 语句的嵌套
if 语句中又包含一个或者多个 if 语句的时候被称之为是 if 语句嵌套,一般形式如下:
if(表达式)
if(表达式 2) 语句块 1
else
if(表达式 3) 语句块 2
else 语句块 4
在使用 if 语句的嵌套形式的时候,可以对条件进行细化,然后进行所相对应的操作。
如下代码所示👇
编译运行结果:
两个数字相等 a = b
一个数字大于另一个数字 a>b
一个数字小于另一个数字 a<b
注意:在使用 if 语句嵌套的时候,应该注意 if 与 else 的匹配情况。else 总是与其上面最近的未配对 if 进行匹配。
🍬 if...else 语句形式
简介:除了可以指定在条件为真时候执行某些语句外,还可以执行另外一段代码。在 C 语言中是利用 else 语句完成得,其一般形式如下:
if(表达式)
语句块 1;
else
语句块 2;
其语句的执行流程图如下所示:
🍬else if 语句形式
简介:利用 if 和 else 关键字的组合可以实现 else if 语句,这是对一系列互斥的条件进行检验,其一般形式如下:
if(表达式 1) 语句 1
else if(表达式 2) 语句 2
else if(表达式 3) 语句 3
......
else if(表达式 m) 语句 m
else 语句 n
其语句的执行流程图 如下所示:
🔥 else if 语句的使用
🪁 分支语句
🍬 swtich 语句
当[if]语句只有两个分支可以可供选择,而在实际问题中常需要用到多分支的选择。当然使用嵌套[if]语句也可以实现多分支的选择,但是如果分支很多的话,就会使得嵌套的[if]语句层数较多,程序代码并不是具有很高的可读性。而且,分支较多的话还会出现配对错误的情况,可读性不好。所以,这个时候 C 语言就提供了另外一种分支语句。C 语言可以使用 [switch] 语句直接处理多分支选择的情况,将我们程序代码的可读性提高!
🍬 switch 语句的基本形式
[switch]语句是多分支选择语句,在我们程序代码中,如果我们觉得用的分支语句较多的时候。这个时候我们就可以用到[switch]语句来代替 [if - else]分支语句。
例如:如果只需要检验某一个整形变量的可能取值,那么这个时候可以用更简便的[switch]语句。[switch]语句的一般形式如下:
计算表达式当中的值,并且逐个与常量表达式进行比较。当表达式的值与某个常量表达式相等的时候,即执行其后的语句,然后不再进行判断。继续执行后面所有的[case]语句,如表达式的值没有一个和[case]当中的常量表达式相等的时候,则执行[default]默认情况语句块
例如:程序如下:
假设编译运行结果:
Input integer number:4ThursdayFridaySaturdaySundayerror
输入整形数字 4,发现和第④个分支匹配成功,于是就执行第四个分支以及后面的所有分支。这显然不是我们想要的结果,我们希望只执行第四个分支,而跳过后面的其他分支。为了达到这个目标,必须要在每个分支最后添加
break;
语句
🔥 break 介绍
是 C 语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。
使用上面修改用[break]的代码
假设编译运行结果:
Input integer number:4Thursday
🍬 'case'语句的说明
🔥 说明:注意!
[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算
在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的
在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记
🔥 break 介绍
是 C 语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。
使用上面修改用[break]的代码
假设编译运行结果:
Input integer number:4Thursday
🍬 'case'语句的说明
🔥 说明:注意!
[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算
在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的
在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记
🍬 break 介绍
是 C 语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。
使用上面修改用[break]的代码
假设编译运行结果:
Input integer number:4Thursday
🍬 'case'语句的说明
🔥 说明:注意!
[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算
在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的
在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记。
版权声明: 本文为 InfoQ 作者【泽En】的原创文章。
原文链接:【http://xie.infoq.cn/article/ce78dcc11a64d05996c0cde95】。文章转载请联系作者。
评论