选择结构语句 在实际生活中我们经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。同样,在C语言中也经常需要对一些条件做出判断,从而决定执行哪一段代码,这时就需要使用选择语句。选择结构语句分为 if条件语句 和 switch条件语句,今天我们就重点讲解一下 if条件语句 。 if条件语句 if 条件语句分为三种语法格式,每一种格式都有其自身的特点,下面分别进行讲解。 格式一:if语句 if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。 如果小明考试得了100分 妈妈星期天带小明去游乐场 在上面的伪代码中,“ 如果 ”相当于C语言中的关键字 if,“小明考试得了100分”是判断条件,需要用 ( ) 括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在 { } 中。修改后的伪代码如下: if (小明考试得了100分) { 妈妈星期天带小明去游乐场 } 上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下: if (条件语句) { 代码块 } 上述语法格式中,判断条件是一个布尔值,当判断条件为true时, { } 中的执行语句才会被执行。if语句的执行流程如下图所示: if语句流程图 接下来我们通过一个案例来学习if语句的具体用法: #include int main() { int x = 5; //声明变量x if (x < 10)="">//如果x的值小于10则执行if大括号中的代码 { x++; } printf('x=%d\n' , x); return 0; } 运行结果如图3-5所示: 上例中,定义了一个变量x,其初始值为5。在if语句的判断条件中判断x的值是否小于10,很明显条件成立,因此{}中的语句会被执行,变量x的值将进行自增。从运行结果图的运行结果可以看出,x的值已由原来的5变成了6。 格式二:if…else语句 if…else语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。if…else语句的具体语法格式如下: if (判断条件) { 执行语句1 …… } else { 执行语句2 …… } 上述语法格式中,判断条件是一个布尔值。当判断条件为true时,if后面 { } 中的执行语句1会被执行。当判断条件为false时,else后面 { } 中的执行语句2会被执行。if…else语句的执行流程如下图所示: if…else语句流程图 接下来通过一个实现奇偶数判断的案例来演示if..else语句的具体用法: #include int main() { int num = 19; if (num % 2 == 0) { //判断条件成立,num被2整除 printf('num是一个偶数\n'); } else { printf('num是一个奇数\n'); } return 0; } 运行结果如下图所示: 例中,变量num的值为19,模以2的结果为1,不等于0,判断条件不成立。因此会执行else后面 { } 中的语句,打印“num是一个奇数”。 格式三:if…else if…else语句 if…else if…else语句用于对多个条件进行判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分等级为优,如果分数小于80分大于等于70分等级为良,如果分数小于70分大于等于60分等级为中,否则,等级为差。if…else if…else语句的具体语法格式如下: if (判断条件1) { 执行语句1 } else if (判断条件2) { 执行语句2 } …… else if (判断条件n) { 执行语句n } else { 执行语句n+1 } 上述语法格式中,判断条件是一个布尔值。当判断条件 1 为 true 时, if 后面 { } 中的执行语句1会执行。当判断条件 1 为 false 时,会继续执行判断条件 2,如果为 true 则执行语句 2,以此类推,如果所有的判断条件都为 false ,则意味着所有条件均未满足,else后面 { } 中的执行语句n+1会被执行。if…else if…else语句的执行流程如下图所示: if…else if…else语句的流程图 接下来通过一个对学生考试成绩进行等级划分的案例来演示if…else if…else语句的用法: #include int main() { int grade = 75; //定义学生成绩 if (grade >= 80) { //满足条件 grade >=80 printf('该成绩的等级为优\n'); } else if (grade >= 70) { //不满足条件 grade >= 80 ,但满足条件 grade >= 70 printf('该成绩的等级为良\n'); } else if (grade >= 60) { //不满足条件 grade >= 70 ,但满足条件 grade >= 60 printf('该成绩的等级为中\n'); } else { //不满足条件 grade >= 60 printf('该成绩的等级为差\n'); } return 0; } 运行结果如图所示: 例中,定义了学生成绩 grade 为75。它不满足第一个判断条件 grade >=80,会执行第二个判断条件 grade>=70,条件成立,因此会打印“该成绩的等级为良”。 &多学一招:三元运算符 在C语言中有一种特殊的运算叫做三元运算,它和if…else语句类似,具体语法格式如下: 判断条件 ? 表达式1 : 表达式2 三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。 例如求两个数x、y中的较大者,如果用if…else语句来实现,具体代码如下: int x = 0; int y = 1; int max; if (x > y) { max = x; } else { max = y; } 上面的代码运行之后,变量 max 的值为 1 。如果 if…else 语句用三元运算来替换,具体代码如下: int x = 0; int y = 1; int max; max = x > y ? x : y; 这样子代码量是不是就建少了呢?当然了,前提是你的得学会使用啦! 求关注,求转发,求支持! 想要学习的童鞋可以加群:564950050! 同时关注我们的兴趣部落:【C语言编程】 |
|