博学谷——让IT教学更简单,让IT学习更有效
条件的值为非0,按“真”处理,执行{}中的语句。if语句的执行流程如图3-6所示。
开始 判断条件真执行语句假结束
图3-6 if语句流程图
接下来用if语句来比较两个数的大小,求出较大的值,如例3-2所示。 例3-2
1 #include
int x = 11, y = 22; int max = x; if (x < y)
max = y;
printf(\
运行结果如图3-7所示。
图3-7 运行结果
例3-2定义了两个变量x,y的值,并且定义最大值标识max,将x的值赋给max。然后判断x 2、if…else语句——双分支结构 if…else语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。if…else语句的具体语法格式如下: if (判断条件) { 执行语句1 } else { 执行语句2 6 …… 博学谷——让IT教学更简单,让IT学习更有效 } …… 上述语法格式中,判断条件的值只能是0或非0,若判断条件的值为非0,按“真”处理,if后面{}中的执行语句1会被执行,若判断条件的值为0,按“假”处理,else后面{}中的执行语句2会被执行。if…else语句的执行流程如图3-8所示。 开始判断条件真执行语句 1假执行语句 2结束 图3-8 if…else语句流程图 例3-2实现了两个数值比较大小,那么现在用if…else实现图3-2所描述的流程,三个数比较大小,求出最小值。如例3-3所示。 例3-3 1 #include int x = 10, y = 20, z = 30; if (x > y) { } else { } if (x > z) printf(\最小值是%d\\n\else printf(\最小值是%d\\n\if (y > z) printf(\最小值是%d\\n\printf(\最小值是%d\\n\else 运行结果如图3-9所示。 7 博学谷——让IT教学更简单,让IT学习更有效 图3-9 运行结果 如图3-9所示,运行结果为10。通过if…else条件判断,求出了三个数中的最小值。 3、if…else if…else语句——多分支结构 if…else if…else语句用于对多个条件进行判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分等级为优,如果分数小于80分大于等于70分等级为良,如果分数小于70分大于等于60分等级为中,否则,等级为差。if…else if…else语句的具体语法格式如下: if (判断条件1) { } else if (判断条件2) { } …… else if (判断条件n) { } else { } 执行语句n+1 执行语句n 执行语句2 执行语句1 上述语法格式中,判断条件的值只能是0或非0。若判断条件的值为非0,按“真”处理,if后面{}中的执行语句1会被执行,若判断条件的值为0,按“假”处理,继续执行判断条件2,如果判断条件2的值为非0,则执行语句2,以此类推,如果所有判断条件的值都为0,意味着所有条件都不满足,else后面{}中的执行语句n+1会被执行。if…else if…else语句的执行流程如图3-10所示。 开始真判断条件1假判断条件2假判断条件3真执行语句3真执行语句2执行语句1假??真判断条件n假执行语句n+1执行语句n结束 8 博学谷——让IT教学更简单,让IT学习更有效 图3-10 if…else if…else语句的流程图 接下来用if…else if…else语句对学生考试成绩进行等级划分,如例3-4所示。 例3-4 1 #include int grade = 75; //定义学生成绩 if (grade >= 80) { } else if (grade >= 70) { } else if (grade >= 60) { } else { } //不满足条件 grade >= 60 printf(\该成绩的等级为差\\n\ //不满足条件 grade >= 70 ,但满足条件 grade >= 60 printf(\该成绩的等级为中\\n\ //不满足条件 grade >= 80 ,但满足条件 grade >= 70 printf(\该成绩的等级为良\\n\//满足条件 grade >=80 printf(\该成绩的等级为优\\n\ 运行结果如图3-11所示。 图3-11 运行结果 例3-4中,定义了学生成绩grade为75,由于它不满足第一个判断条件grade>=80,会执行第二个判断条件grade>=70,条件成立,因此会打印“该成绩的等级为良”。 3.4.2 if语句的嵌套 在一个if语句中还可以包含一个或多个if语句,这称为if语句的嵌套。其一般形式可表示如下: if (判断条件1) { if (判断条件2) { 执行语句1 9 博学谷——让IT教学更简单,让IT学习更有效 } else { } if (判断条件3) { } else { } 执行语句4 执行语句3 } else { } 执行语句2 或者 if (判断条件1) { } if (判断条件2) { } else if (判断条件3) { } else { } 执行语句3 执行语句2 执行语句1 在上述语法格式中,需要注意的是,嵌套内的if语句可能又是if-else类型的,这将会出现多个if和else重叠的情况,为避免歧义,C语言规定,else总是与它前面最近的没有配对的if语句配对。 if语句嵌套的流程图如图3-12所示。 10