
C语言程序设计 赵晓阳
赵晓阳

第4章选择结构程序设计 ·41if语句 4.2 switch语句 ·43选择结构的程序设计举例
第4章 选择结构程序设计 4.1 if语句 4.2 switch语句 4.3 选择结构的程序设计举例

4.1if语句 ·在C语言中,可以用if语句来实现单、双分支结构。 ·4.1.1if语句的3种形式 ● C语言提供了3种形式的f语句。 。1.基本f结构(单分支结构) ·基本f结构的一般形式为: ·f(表达式)语句1 ● 该语句的执行过程是:若表达式的值为真(非o),则执行语句1,否则 不作任何操作,从而直接执行语句后面的语句。其流程图结构如图 4所示。 下一页返回
4.1 if语句 在C语言中,可以用if语句来实现单、双分支结构。 4.1.1 if语句的3种形式 C语言提供了3种形式的if语句。 1.基本if结构(单分支结构) 基本if结构的一般形式为: if (表达式) 语句1 该语句的执行过程是:若表达式的值为真(非0),则执行语句1,否则 不作任何操作,从而直接执行if语句后面的语句。其流程图结构如图 4-1所示。 下一页 返回

4.1f语句 ● 例41判断一学生的成绩是否及格,及格则打印出及格信息, 否则不作任何处理。 ● 程序如下: ● #include ● main() ● ● int score; /*定义变量score,用它来表示学生的成 绩*/ printf("pleaseinputthe student\'sscore:\n"); ● scanf("%d”,&score);/*从键盘输出成绩并给变量score*/ if(score:>=6o)/*判断成绩是否超过6o*/ printf(”nThe student\′sscore is passing.”);/*输出 成绩合格信息*/ } 上一页下一页返回
例4-1 判断一学生的成绩是否及格,及格则打印出及格信息, 4.1 if语句 否则不作任何处理。 程序如下: #include main( ) { int score; /*定义变量score,用它来表示学生的成 绩*/ printf(″please input the student\′s score:\n″); scanf(″%d″,&score);/*从键盘输出成绩并给变量score*/ if (score>=60)/*判断成绩是否超过60*/ printf(″\n The student\′s score is passing.″);/*输出 成绩合格信息*/ } 上一页 下一页 返回

4.1if语句 ·输出结果: please input the studnts score: 85 ● The student\'sscore is passing. ● 注意:f语句中的“语句”一般称作f子句,它可以为一条语句,也可 以是多条语句(复合语句),注意复合语句要用一对花括号“{,“”括起 来,以表示其是f语句的一部分。 ·另外,条件表达式的值在正常情况下为真或假,由于C语言没有专门 的逻辑值,一般用o表示假,非0表示真。故可以利用任何非0值(正 或负数)代表条件表达式值。 上一页下一页返回
4.1 if语句 输出结果: please input the studnts score: 85 The student\′s score is passing. 注意:if语句中的“语句1”一般称作if子句,它可以为一条语句,也可 以是多条语句(复合语句),注意复合语句要用一对花括号“{” , “}”括起 来,以表示其是if 语句的一部分。 另外,条件表达式的值在正常情况下为真或假,由于C语言没有专门 的逻辑值,一般用0表示假,非0表示真。故可以利用任何非0值(正 或负数)代表条件表达式值。 上一页 下一页 返回

4.1if语句 ·2.if-else结构(双分支结构) 。if-else型分支有时也称双分支结构。这种结构的形式为: 。f(表达式)语句; ·else语句2; 该语句的执行过程是:若表达式的值非o,则执行语句1,否则执行 语句2。其流程图结构如图42所示。 ·说明: ·①f后面的表达式不限于是关系表达式或逻辑表达式,可以是任意表 达式。 上一页下一页返回
4.1 if语句 2.if-else结构(双分支结构) if-else型分支有时也称双分支结构。这种结构的形式为: if (表达式) 语句1; else 语句2; 该语句的执行过程是:若表达式的值非0,则执行语句1,否则执行 语句2。其流程图结构如图4-2所示。 说明: ①if后面的表达式不限于是关系表达式或逻辑表达式,可以是任意表 达式。 上一页 下一页 返回

4.1if语句 ②if语句中的控制表达式应该用括号括起来,若有else子句,则控制 表达式后的语句同样必须用分号结束,例如: 。ifi>j)jt+; ●else i++; 但是分号也不能随意乱用,如果写成: if(i>j);j++; elsei++; 使if语句后面跟了一个空语句而使语句“elsei++;”变得不合法。 上一页下一页返回
4.1 if语句 ②if语句中的控制表达式应该用括号括起来,若有else子句,则控制 表达式后的语句同样必须用分号结束,例如: if(i>j) j++; else i++; 但是分号也不能随意乱用,如果写成: if(i>j);j++; else i++; 使if语句后面跟了一个空语句而使语句“else i++;”变得不合法。 上一页 下一页 返回

4.1if语句 ●( ③若if子句或else子句由多个语句构成,则应该构成复合语句, 如: 。if(i>j){j++;k+;} 。else{i++;k++} ·也可以简单写成: 。if(i>j)jt+,k++; 。else i+-t,k++; ·if子句和else子句都是由逗号表达式构成的简单语句。 上一页下一页返回
4.1 if语句 ③若if子句或else子句由多个语句构成,则应该构成复合语句, 如: if(i>j) {j++;k++;} else {i++;k++;} 也可以简单写成: if(i>j) j++,k++; else i++,k++; if子句和else子句都是由逗号表达式构成的简单语句。 上一页 下一页 返回

4.1if语句 ● 例42判断一学生的成绩是否及格,及格则打印出及格信息,否则打 印出不及格信息。 ● #include main() ●{ ● int score; /*定义变量score,用它来表示学生的成绩*/ ● printf("pleaseinput the student\'sscore:\n"); ● scanf("%d",&score);/*从键盘输出成绩并给变量score*/ if(score>=6o)/*判断成绩是否超过6o*/ 上一页下一页返回
4.1 if语句 例4-2 判断一学生的成绩是否及格,及格则打印出及格信息,否则打 印出不及格信息。 #include main( ) { int score; /*定义变量score,用它来表示学生的成绩*/ printf(″please input the student\′s score :\n″); scanf(″%d″,&score);/*从键盘输出成绩并给变量score*/ if (score>=60)/*判断成绩是否超过60*/ 上一页 下一页 返回

4.1if语句 printf("\nThe student\'sscore is passing."); *超过,输出合格信息*/ else printf("\nThe student\'sscore is NOT passing."); /*否则,输出成绩不合格信息*/ } ·输出结果: please input the students score: ·55 The student\'sscore is NOT passing. 上一页下一页返回
4.1 if语句 printf(″\n The student\′s score is passing.″); /*超过,输出合格信息*/ else printf(″\n The student\′s score is NOT passing.″); /*否则,输出成绩不合格信息*/ } 输出结果: please input the students score: 55 The student\′s score is NOT passing. 上一页 下一页 返回