文档详情

C语言第四章.ppt

发布:2017-06-06约7.68千字共85页下载文档
文本预览下载声明
#includestdio.h void main() { int a,b; scanf(“%d%d”,a,b); if(ab) printf(“max=%d\n”,a); else printf(“max=%d\n”,b); } 注意:if-else语句可能产生的语法语义错误: 分号错误:if(xy);printf(“%d\n”,x); else printf(“%d\n”,y); 语义错误,缺少else语句: if(xy)printf(“%d\n”,x); printf(“%d\n”,y); 有些问题需要执行多于两个选择-多重选择。例如:输入一个学生成绩,当成绩= 90时,打印“Very Good”;当成绩在 80~90之间时,打印“Good”;当成绩在 60~80之间时,打印“Pass”;当成绩60时,打印“Fail”。 4.3.3 系列if-else 语句 多重选择: 打印“Pass” 打印“Good” 打印“Fail” 打印“Very Good” false true 成绩= 90 成绩= 80 false true false true 成绩= 60 在执行某个分支后,立即退出(多选一)。 对应的if-else语句: if(score=90)printf(Very Good\n); else if(score=80) printf(Good\n); else if(score=60) printf(Pass\n); else printf(Fail \n); 自由格式,可以写成系列if-else语句: if(score=90 )printf(Very Good\n); else if(score=80) printf(Good\n); else if(score=60) printf(Pass\n); else printf(Fail \n); 在执行某个分支后,立即退出,结构中其他语句被忽略。 也可以执行若干个if语句实现多重选择: if(score=90 )printf(Very Good\n); if(score=80score90 )printf(Good\n); if(score=60score80 )printf(Pass\n); if(score60 )printf(Fail \n); 缺点: 在执行某个if语句后,后继if语句照旧执行。 要编写复杂条件。 例: 计算函数值 #includestdio.h void main() { int x,y; scanf(“%d”,x); if(x0)y=-1; else if(x0)y=1; else y=0; printf(“x=%d,y=%d\n”,x,y); } (1)系列if-else语句 (2)多个if 语句 #includestdio.h void main() { int x,y; scanf(“%d”,x); if(x0)y=-1; if(x==0)y=0; if(x0) y=1; printf(“x=%d,y=%d\n”,x,y); } 两个程序的异同点: 实现同样的任务,如果x=-3,两个程序都输出y=-1 不同的是:程序(1)在执行y=-1后,结构中其他语句被忽略,程序(2)在执行y=-1后,后继if语句照旧执行。 if(表达式) if(表达式) B else C else A C B A if(表达式) A else if (表达式) B else C C B A 表达式 表达式 假 真 4.3.4嵌套if-else语句 真 假 表达式 表达式 嵌套结构 If语句 例: 计算函数值 y=-1 Y=1 Y=0 X!=0 false true x0 false true 错误的程序: y=-1; if(x!=0) if(x0)y=1; else y=0; else与最近的if进行匹配。 嵌套结构: if与else配对的规则: C中没用单独的else语句,每一个else必须与一个if 配对。 else与没有配对的最近的if进行匹配。 为了使else与第一个if匹配,可以将第二个if加大括号,正确的程序为: y=-1; if(x!=0) { if(x0)y=1;} else y=0 条件运算符“?:”可以用来判断并给出结果。例如 条件表达式:xy?x:y 先判断xy?真,则表达式的值为x否则表达式的值为y。 条件表达式常用在赋值语句中,例如赋值语句: z=xy?x:y; 含义:令z等于x、y中的较大值 条件表达式也常用在输出
显示全部
相似文档