选择结构程序设计.pdf
一、条件判断语句一、条件判断语句 格式 格式:P96图图5.5if(表达式表达式)语句语句1 else语句语句2 if 语句可嵌套语句可嵌套:if(表达式表达式1)if(表达式表达式2)语句语句1else 语句语句2else if(表达式表达式3)语句语句3else 语句语句;if(表达式表达式 i)语句语句j 语句语句4.第四章 选择结构程序设计第四章 选择结构程序设计else后的语句后的语句为假为假(0值值)if 表达式?表达式?为真为真(非非0值值)if 表达式后的语句表达式后的语句执行执行 if 的后续语句的后续语句PDF 文件使用 pdfFactory Pro 试用版本创建 注意:注意:else与最近的与最近的 if 配对。配对。例、例、if()if()else if()if()else 例、例、if()if()if()if()else else else else 一定要内嵌,不要交叉一定要内嵌,不要交叉.不等同等同等同if()if()else PDF 文件使用 pdfFactory Pro 试用版本创建 if(ab)/*if嵌套嵌套*/if(ac)t=a;else t=c;elseif(bc)t=b;else t=c;printf(“min=%gn”,t);例、求三个实型数中的最小数。例、求三个实型数中的最小数。#include void main()float a,b,c,t;scanf(“%f%f%f”,&a,&b,&c);ab?真真假假ac?bc?a 最小最小真真假假c 最小最小假假b 最小最小真真(即即ba)(即即cb)(即即ca)输出最小数输出最小数PDF 文件使用 pdfFactory Pro 试用版本创建 tc?if(ab)t=a;/*if并列并列*/else t=b;if(tc)t=t;elst t=c;printf(“min=%gn”,t);例、求三个实型数中的最小数。例、求三个实型数中的最小数。#include void main()float a,b,c,t;scanf(“%f%f%f”,&a,&b,&c);ab?t=a真真t=b假假t=t真真t=c假假输出输出 tPDF 文件使用 pdfFactory Pro 试用版本创建 if(a c)t=c;printf(“min=%gn”,t);例、求三个实型数中的最小数。例、求三个实型数中的最小数。#include void main()float a,b,c,t;scanf(“%f%f%f”,&a,&b,&c);a c?输出输出 t假假真真t=cPDF 文件使用 pdfFactory Pro 试用版本创建 例、求三个实型数中的最小数。例、求三个实型数中的最小数。float min(float x,float y)if(xy)return x;else return y;#include void main()float a,b,c,t;scanf(“%f%f%f”,&a,&b,&c);t=min(a,b);t=min(t,c);printf(“min=%gn”,t);输出输出 txy?返回返回 x真真返回返回 y假假mina,b传递给传递给x,yt=返回值返回值t=返回值返回值xy?min.t,c传递给传递给x,y返回返回 x真真返回返回 y假假PDF 文件使用 pdfFactory Pro 试用版本创建 #include void main()float a,b,c,t;scanf(“%f%f%f”,&a,&b,&c);t=min(a,b,c);printf(“min=%gn”,t);float min(float x,float y,float z)float t=x;if(ty)t=y;if(tz)t=z;return t;例、求三个实型数中的最小数。例、求三个实型数中的最小数。t z?t y?返回返回 t假假真真t=zmin假假真真t=yt=xmin函数中的函数中的t变变量只在量只在min函数函数内部起作用内部起作用main函数中定义函数中定义的的t变量只在变量只在main函数内部起作用函数内部起作用PDF 文件使用 pdfFactory Pro 试用版本创建 条件运算符 条件运算符?:(P102)格式:格式:表达式表达式1?表达式表达式2:表达式表达式3例、例、if(x0)y=x;else y=-x;可用条件运算符表达如下:可用条件运算符表达如下:(x0)?(y=x):(y=-x);表达式表达式1 也可表示为:也可表示为:y=(x0)?x:-x;.表达式表达式1?表达式表达式2表达式表达式3真真假假真真假假PDF 文件使用 pdfFactory Pro 试用版本创建 优先级:倒数第三优先级:倒数第三(P366)前例、前例、(x0)?(y=x):(y=-x);可可否否x0?y=x:y=-x;?exp1?exp2:exp3三个表达式的类型可不相同。三个表达式的类型可不相同。exp2、exp3不相同时,条件表达式的值的类型为二不相同时,条件表达式的值的类型为二者中较高的类型(者中较高的类型(P104(5))。)。例、例、xy?1:1.5若若 xy,则值为则值为 1.0 .例、例、P104例例5.4#include void main()char ch;ch=getchar();printf(%cn,(ch=A&ch=Z)?(ch+32):ch);PDF 文件使用 pdfFactory Pro 试用版本创建 二二、多分支多分支选择语句选择语句 switch 格式格式:P105switch(表达式)表达式)case 常量表达式常量表达式1:语句:语句1case 常量表达式常量表达式2:语句:语句2case 常量表达式常量表达式n:语句:语句ndefault:语句语句n+1 switch语句只在语句只在(表达式表达式)进)进行判断,值与行判断,值与以以下下哪哪个个常常量表达式量表达式匹匹配,配,就从那儿开始就从那儿开始执执行,行,都都不不匹匹配配就就执行执行default各常各常量表达式量表达式必须互必须互不不相同相同可可有有可可无无.PDF 文件使用 pdfFactory Pro 试用版本创建 例、输入星期几的数字,输出对应的英文单词。例、输入星期几的数字,输出对应的英文单词。#include void main()int n;printf(输入今日是星期几输入今日是星期几(输入数字输入数字):);scanf(%d,&n);switch(n)case 1:printf(Monday n);case 2:printf(Tuesday n);case 3:printf(“Wednesday n);case 4:printf(Thursday n);case 5:printf(Friday n);case 6:printf(Saturday n);case 7:printf(Sunday n);default:printf(Error!n);匹匹配配后后,顺顺序序往往下下运运行行输输入入:6 运行结运行结果果:SaturdaySundayError!.PDF 文件使用 pdfFactory Pro 试用版本创建 解决:加入能跳出解决:加入能跳出switch的语句的语句 break;三、三、break语句:语句:P122 格式:格式:break;终止执行终止执行switch、循环语句。、循环语句。即即,遇到遇到break语句语句,则跳出则跳出switch、循环语句,、循环语句,继续执行其后续语句。继续执行其后续语句。.PDF 文件使用 pdfFactory Pro 试用版本创建 前例、前例、#include void main()int n;printf(输入今日是星期几输入今日是星期几(输入数字输入数字):);scanf(%d,&n);switch(n)case 1:printf(Monday n);break;case 2:printf(Tuesday n);break;case 3:printf(Wednesday n);break;case 4:printf(Thursday n);break;case 5:printf(Friday n);break;case 6:printf(Saturday n);break;case 7:printf(“Sunday n);break;default:printf(Error!n);.PDF 文件使用 pdfFactory Pro 试用版本创建 可以多个可以多个case共用一组执行语句。共用一组执行语句。P106(6)例、输入一值,若其在例、输入一值,若其在0,7.5范围,按如下要求分级。范围,按如下要求分级。0,1.5)A1.5,6)B6,7.5 C#include void main()float n;printf(input a number:);scanf(%f,&n);if(n7.5)printf(7.5 n);else switch(int)(n/1.5)case 0:printf(An);break;case 1:case 2:case 3:printf(“Bn);break;case 4:case 5:printf(Cn);break;PDF 文件使用 pdfFactory Pro 试用版本创建