当前位置:文档之家› 13 选择结构程序设计 小结

13 选择结构程序设计 小结


5. if的常见问题解析 1) 空语句的问题 if (3 > 2); 等价于 if (3 > 2) ; 2) if (表达式1) A; else B; 是正确的 3) if (表达式1) A; else (表达式2) B;
4
//一条完整的简单if语句
//这是一个空语句做内嵌语句
if (表达式1); A; else B; 是错误的
选择结构程序设计 小结
选择结构 某些代码可执行,也可能不执行,有选择的执行某些 代码。 分类 if语句 ;switch语句 if语句 1. if最简单的用法 格式: if (表达式) 语句 功能: 如果表达式为真,执行语句 ;如果表达式为假, 语句不执行
1
Байду номын сангаас
2. if内嵌语句的范围问题(重点) 1) if (表达式) 语句A; 语句B; 解释: if只能控制语句A的执行或不执行 if无法控制语句B的执行或不执行 语句B一定会执行 2) if (表达式) { 语句A; 语句B; } 此时if可以控制语句A和语句B 由此可见:if只能控制一个语句的执行或不执行, 如果想控制多个语句就必须把这些语句用{}括起来。
switch语句 7 1. switch(整型表达式) //语法是重点 { case 常量1:语句组A;break; case 常量2:语句组B;break; default:语句组C; } 注意: switch后表达式是整型值(或字符或枚举); case后必为常量(或常量表达式,不可以出现任 何变量!) default分支的位置任意,且可以不要! 各个case分支后的常量值不能相同! 例如: float x=3; switch(x) {case x<0: printf(“x<0\n”);} 是错的!两点错误:1)x是float型;2)case后有变量x
9
2
3 3. if...else...的用法 if(表达式) A; else B; 这是一条语句,else不能单独使用! 4. if...else if...else...的用法 if (表达式1) A; else if (表达式2) B; else C; 程序的一次执行,语句A、B、C只执行其中的一条! 表达式1为真,执行A,其他都不再看! 只有当表达式1为假,且表达式2为真,执行B 只有当表达式1和2均为假,才会立刻执行语句C。
错误的写法! 条件永远应该写在if的后面 正确的写法是: 去掉(表达式2),或者其前加if
5
4) if语句的嵌套:if语句的内嵌语句又是一个if语句 注意:else总是和同层离它最近的尚未配对的if配对! 例如: if(表达式1) if(表达式2) A; else B; 无论书写时else与哪个if对齐,编译器都会认为它应与蓝 色的if配对! 因此,当表达式1为假(0)时,语句A和B均不会被执行! 只有当表达式1为真 且 表达式2为真时,执行语句A, 当表达式1为真 且 表达式2为假时,语句B才会被执行
8
3. switch语句要掌握的算法 1)输入五分制分数等级,输出对应的分数范围。 ——课件12例题2 ——注意字符常量要用’’引起来 2)输入年月,输出该月的天数。 ——课件12例题3 ——注意break语句的用法,如何实现几个入口 共用一组语句? 条件表达式 1. A ? B :C 等价于: if(A) B; else C; 2. 优先级高于赋值,低于逻辑运算
6
6. if语句应该掌握的常用算法 1)输入三个数,从大到小输出。P98 例5.2 ——两两比较,逆序则交换的方法 ——3个并列的简单if语句的应用 2)输入三个整数,找出最大值。实训四作业题 ——设置存放当前最大值的变量m,总把当前找 到最大的量放在m中,其余数据依次与m比较,遇 到更大的,覆盖m值,这叫“打擂法”求最值 3)判断闰年的条件 (year%4==0&&year%100!=0)||(year%400==0) 4)输入百分制成绩,输出其对应的五分制等级。 ——课件11 例题3
2. break;语句的作用是跳出当前switch的执行。 “case 常量:”仅仅起到入口标号(路标)的作用 执行方法: 判断switch后的表达式的值与case后的常量值是否相等, 决定进入哪个case分支,若均不相等就直接离开(若存 在default分支,进入default),一旦进入switch则所有 其他标号都失效,如果没有遇到break;语句,会一直 将其后的所有语句执行完。 例如: a=1; switch(a) 输出 12 { a=2; default: printf("0"); 输出 2 case 1: printf("1"); a=3; case 2: printf("2"); break; 输出 3 case 3: printf("3"); a=4; } 输出 012
相关主题