第三章分支结构的团程库设计 41i语句 42 switch语句 43程序举例 BACK
第三章 分支结构的C程序设计 4.1 if语句 4.2 switch语句 4.3 程序举例
41if语句 411i句的简单形式 甙(表达式)语句支 表达式假(0) 真(非0) 语句 真表达式假 语句 下一语句 图41i语句执行过程
4.1 if 语 句 4.1.1 if语句的简单形式 if(表达式) 图 4.1 if语句执行过程 下一语句 真(非0) (a) (b) 假(0) 表达式 语 句 语 句 真 假 表达式
例41打印出不及格的成绩。 程序: main() i float score scanf(%f",&score); if(score<60. 0)printf ("score=%5. 1f\n", score) 运行: 68k (输入,不满足条件,无输出) 再次运行: 50 (输入) score=50.0 (输出)
例 4.1 打印出不及格的成绩
412 ifelse结构 1. ifelse结构 f表达式)语句1 else语句2 真又假 语句1 语句2 式表达式一假 语句1语句2 下一语句 (b) 图42if~else语句执行过程
4.1.2 if~else结构 1. if~else结构 if(表达式) 语句1 else 语句2 下一语句 真 (a) (b) 假 表达式 语句1 语句1 真 假 表达式 语句2 语句2 图 4.2 if~else语句执行过程
例42打印成绩>60分为“Pas",否则为“Fail〃 解我伯可以使用两种方法编程 方法一:用两个简单的i语句实现 main() i float score; scanf("%f, &score) if(score60.0)printf("score=%5. 1f---Failln", score) if(score>=60.0)printf("score=% 05. 1f---Passn" score)
例 4.2 打印成绩≥60分为“Pass” , 否则为“Fail” 。 解 我们可以使用两种方法编程: 方法一: 用两个简单的if语句实现: main( ) { float score; scanf(″%f″, &score); if(score=60.0) printf(″score=%5.1f---Pass\n″ ,score); }
运 50 score=凵50.0-Fai 再次运行: 80≠ score=凵80.0--Pass 在第二个i语句中,jf( score>=60.0)是不能缺少的,否 则不管 score是否小于60,都将打印出第二行的结果
运行: 50 score= 50.0---Fail 再次运行: 80 score= 80.0---Pass 在第二个if语句中,if(score>=60.0)是不能缺少的,否 则不管score是否小于60,都将打印出第二行的结果
方法二:用if~else语句实现: main i float score scanf("%f", &score) if( score<60.0)printf("score=05. 1f---Failln"score) else printf("score=%5. If---PassIn" score) 运行: 50 score=L 50.0---Fail 再次运行 80 score=凵80.0--Pass
方法二: 用if~else语句实现: main( ) { float score; scanf(″%f″, &score); if(score<60.0) printf(″score=%5.1f---Fail\n″, score); else printf(″score=%5.1f---Pass\n″, score); } 运行: 50 score= 50.0---Fail 再次运行: 80 score= 80.0---Pass
2.条件运算符的使用 reise结构中的语句是表达式语句时,就可以使用条 件运算符“?:”了,即下列 ifelse语句: f表达式1)表达式2;else表达式3; 用条件运算符写成通用形式即为 表达式1?表达式2:表达式3 这是一个条件表达式,其功能是:当表达式1的值为真(非零) 时,整个条件表达式的值就取表达式2的值;当表达式1的值 为假(零〕时,整个条件表达式的值就取表达式3的值
2. 当if~else结构中的语句是表达式语句时, 就可以使用条 件运算符“? : ”了,即下列if~else语句: if(表达式1) 表达式2; else 表达式3 表达式1? 表达式2: 表达式3 这是一个条件表达式,其功能是:当表达式1的值为真(非零) 时,整个条件表达式的值就取表达式2的值;当表达式1的值 为假(零)时, 整个条件表达式的值就取表达式3的值
如下列语句段: X=10 if(x>9)y=100;ely=200; 可以写成: =10: y=x>9?100:200;
如下列语句段: x=10; if(x>9) y=100; else y=200; 可以写成: x=10; y=x>9? 100: 200;
例4.3输入x的值,当x>0时调用sqrt(x),否则调用fbs(x) t include naine f float,y scanf("%f",&x); # y=x>0? sqrt(x) fabs(x) printf(x=%f, y=%fn"x,y); 运行: 9.0 X=9.00000=3.00000 再次运行: 9.0 X9.000000y=9.000000
例 4.3 输入x的值, 当x>0时调用sqrt(x),否则调用fabs(x)。 #include main( ) { float x, y; scanf(″%f″, &x); #= y=x>0? sqrt(x): fabs(x); printf(″x=%f, y=%f\n″, x, y); } 运行: 9.0 x=9.000000, y=3.000000 再次运行: -9.0 x=-9.000000, y=9.000000