1、if语句的三种形式,(1)单选条件语句的格式为: (2)双选条件语句的格式为: (3)多选条件语句,第3章 程序结构和流程控制语句,(3)多选条件语句 多选条件语句的格式为:if ()else if ()else if ()else if ()else,if语句的三种形式,【例3.3】有下列分段函数: 编一程序,输入x,输出y的值。,#include void main(void) float x,y;coutx;if (x0)y=x+1;else if (x10)y=x*x-5;elsey=x*x*x;cout“y=“yendl; ,2.if语句的嵌套,在if语句中又包含一个或多个if语句称
2、为if语句的嵌套。其一般格式为:if ()if ()elseelseif ()else,【例 3.5】求三个整数a、b、c中的最大者,a、b、c由键盘输入。,#include void main() int a,b,c,max;coutabc;if (ab)if (ac) max=a;else max=c; elseif (bc)max=b;elsemax=c;cout“max=“maxendl; ,程序执行后提示:Input a,b,c:1 4 5max=5,方法一,注意:if语句嵌套使用时,应当注意else与if的配对关系。 C+规定:else总是与其前面最近的还没有配对的if进行配对。花
3、括号可以改变语句匹配 关系。,#include void main() int a,b,c,max;coutabc;if (ab)max=a;elsemax=b;if (maxc) max=c; cout“max=“maxendl; ,方法二,思考:如何实现输入三个数 有小到大输出这三个数?,注意和方法一的区别: if的嵌套 变量的使用,max=a; if (maxb) max=b; if (maxc) max=c;,方法三,3.2.3 switch语句,1switch语句(开关语句) (1)作用:switch语句即开关语句,它根据给定的条件,决定执行多个分支程序段中的某一个分支程序段。 (2
4、)格式:switch () case :case :case :default:,【例3.7】 输入06的整数,将其转换成对应的星期几。,#include void main() int a;couta;switch (a) case 0:cout“Sundayn“;case 1:cout“Mondayn“;case 2:cout“Tuesdayn“;case 3:cout“Wednesdayn“;case 4:cout“Thursdayn“;case 5:cout“Fridayn“;case 6:cout“Saturdayn“;default:cout“输入数据错.n“; ,解决办法:每个c
5、ase语句后增加break,#include void main() char a;couta;switch (a) case 0:cout“Sundayn“;break;case 1:cout“Mondayn“;break;case 2:cout“Tuesdayn“;break;case 3:cout“Wednesdayn“;break;case 4:cout“Thursdayn“;break;case 5:cout“Fridayn“;break;case 6:cout“Saturdayn“;break;default:cout“输入数据错.n“; ,一般形式 switch (表达式) ca
6、se 常量表达式 1:语句1case 常量表达式 2:语句2case 常量表达式 n:语句ndefault : 语句n+1,执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,2.switch 语句组成及特点,3break语句在switch语句 中的作用,(1)作用:中止当前语句的执行,并跳转到下一条语句处执行。 (2)格式:break;,【例3.8】 商店打折售货。购货金额数量越大,折扣越大。具体标准为(m:购货金额,d:折扣率):m250(元) d=0%250m500 d=5%500m1000 d=7.5%1000m2000
7、d=10%m2000 d=15%从键盘输入购货金额,计算实付的金额。,#include void main() int m,c;float d,f;coutm;if (m=2000)c=8;elsec=m/250;switch (c) case 0:d=0;break;case 1:d=5;break;case 2:case 3:d=7.5;break;,case 4: case 5:case 6:case 7:d=10;break;case 8:d=15;break;f=m*(1-d/100.0);cout“实发:“fendl; ,使用switch语句应注意的问题,case分支可包含多个语句,且不用 。 表达式、判断值都是int型或char型。 若干分支执行内容相同可共用一组语句。,作业题: 3.11、3.14、3.18 下周二实验一:提前准备好实验1的题目代码,本堂课小结: 1、分支语句if有哪三种形式? 2、程序的多路分支结构可以通过什么语句来实现? 3、使用switch语句应注意哪些问题? 4、break语句在switch结构中的作用? 5、嵌套的ifelse语句中的else与前面的 多个if的配对关系是如何规定的? 6、在switch结构中如何实现若干分支执行相同一组语句?,