《第03章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第03章选择结构程序设计.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第3 3 3 3章章章章 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计第第3 3章之选择结构程序设计章之选择结构程序设计 u学习的意义学习的意义 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C 在编制程序时,有时并不能保证程序一定执行某些指令,在编制程序时,有时并不能保证程序一定执行某些指令,在编制程序时,有时并不能保证程序一定执行某些指令,在编制程序时,有时并不能保证程序一定执行某些指令,而是要根据一定的外部条件来判断哪些指令要执行。如菜谱而是要根据一定的外部条件来判断哪些指令要执行。如菜谱而是要根据一定的外部条件来判断哪些指令要执行。如
2、菜谱而是要根据一定的外部条件来判断哪些指令要执行。如菜谱中要加工西红柿,可能有这样的步骤:中要加工西红柿,可能有这样的步骤:中要加工西红柿,可能有这样的步骤:中要加工西红柿,可能有这样的步骤:如果是用鲜西红柿,如果是用鲜西红柿,如果是用鲜西红柿,如果是用鲜西红柿,则去皮、切碎,开始放入,则去皮、切碎,开始放入,则去皮、切碎,开始放入,则去皮、切碎,开始放入,如果是用西红柿酱,如果是用西红柿酱,如果是用西红柿酱,如果是用西红柿酱,就在最后放就在最后放就在最后放就在最后放入。入。入。入。这里,我们并不知道具体操作时执行哪段指令,但菜谱这里,我们并不知道具体操作时执行哪段指令,但菜谱这里,我们并不知
3、道具体操作时执行哪段指令,但菜谱这里,我们并不知道具体操作时执行哪段指令,但菜谱给出了不同条件下的处理方式,计算机程序也是如此,可以给出了不同条件下的处理方式,计算机程序也是如此,可以给出了不同条件下的处理方式,计算机程序也是如此,可以给出了不同条件下的处理方式,计算机程序也是如此,可以根据不同的条件执行不同的代码,这就是根据不同的条件执行不同的代码,这就是根据不同的条件执行不同的代码,这就是根据不同的条件执行不同的代码,这就是选择结构选择结构选择结构选择结构。程序总。程序总。程序总。程序总是为解决某个实际问题而设计的,而问题往往包含多个方面,是为解决某个实际问题而设计的,而问题往往包含多个方
4、面,是为解决某个实际问题而设计的,而问题往往包含多个方面,是为解决某个实际问题而设计的,而问题往往包含多个方面,不同的情况需要有不同的处理,所以选择结构在我们的实际不同的情况需要有不同的处理,所以选择结构在我们的实际不同的情况需要有不同的处理,所以选择结构在我们的实际不同的情况需要有不同的处理,所以选择结构在我们的实际应用程序中可以说是无处不在,离开了选择结构很多情况将应用程序中可以说是无处不在,离开了选择结构很多情况将应用程序中可以说是无处不在,离开了选择结构很多情况将应用程序中可以说是无处不在,离开了选择结构很多情况将无法处理,因此,正确掌握选择结构程序设计方法对于我们无法处理,因此,正确
5、掌握选择结构程序设计方法对于我们无法处理,因此,正确掌握选择结构程序设计方法对于我们无法处理,因此,正确掌握选择结构程序设计方法对于我们编写实际应用程序尤为重要。编写实际应用程序尤为重要。编写实际应用程序尤为重要。编写实际应用程序尤为重要。选择结构选择结构选择结构选择结构循环结构循环结构循环结构循环结构上一讲上一讲上一讲上一讲 已讨论已讨论已讨论已讨论程序结构程序结构程序结构程序结构顺序结构顺序结构顺序结构顺序结构本讲讨论本讲讨论本讲讨论本讲讨论下一讲讨论下一讲讨论下一讲讨论下一讲讨论C C C C程序中语句的分类程序中语句的分类程序中语句的分类程序中语句的分类 关系运算符、逻辑运算符、条件运
6、算符关系运算符、逻辑运算符、条件运算符关系运算符、逻辑运算符、条件运算符关系运算符、逻辑运算符、条件运算符 选择结构的程序设计选择结构的程序设计选择结构的程序设计选择结构的程序设计(if(if(if(if语句、语句、语句、语句、switchswitchswitchswitch语句语句语句语句)选择结构程序设计举例选择结构程序设计举例选择结构程序设计举例选择结构程序设计举例 本章小结本章小结本章小结本章小结u学习目标学习目标 理解选择结构的含义;理解选择结构的含义;理解选择结构的含义;理解选择结构的含义;掌握掌握掌握掌握C C C C语言语句的分类;语言语句的分类;语言语句的分类;语言语句的分类
7、;掌握关系运算符、逻辑运算符和条件运算符的用法;掌握关系运算符、逻辑运算符和条件运算符的用法;掌握关系运算符、逻辑运算符和条件运算符的用法;掌握关系运算符、逻辑运算符和条件运算符的用法;记住关系运算符、逻辑运算符和条件运算符与其它运记住关系运算符、逻辑运算符和条件运算符与其它运记住关系运算符、逻辑运算符和条件运算符与其它运记住关系运算符、逻辑运算符和条件运算符与其它运算符的优先级关系和结合性;算符的优先级关系和结合性;算符的优先级关系和结合性;算符的优先级关系和结合性;掌握掌握掌握掌握ifififif、switchswitchswitchswitch语句的使用方法。语句的使用方法。语句的使用方
8、法。语句的使用方法。u学习内容学习内容 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计CC C程序中语句的分类程序中语句的分类 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C 语言程序的执行部分是由语句组成的。程序的功能也语言程序的执行部分是由语句组成的。程序的功能也语言程序的执行部分是由语句组成的。程序的功能也语言程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。是由执行语句实现的。是由执行语句实现的。是由执行语句实现的。C C C C语言中的语句可以分为以下语言中的语句可以分为以下语言中的语句可以分为以下语言中的语句可以分为
9、以下5 5 5 5类:类:类:类:表达式语句表达式语句表达式语句表达式语句 由表达式加上分号由表达式加上分号由表达式加上分号由表达式加上分号“;”组成。其一般形式为:组成。其一般形式为:组成。其一般形式为:组成。其一般形式为:表达式;表达式;表达式;表达式;函数调用语句函数调用语句函数调用语句函数调用语句 由函数名、实际参数加上分号由函数名、实际参数加上分号由函数名、实际参数加上分号由函数名、实际参数加上分号“;”组成。其一般形组成。其一般形组成。其一般形组成。其一般形式为:式为:式为:式为:函数名函数名函数名函数名(实际参数表实际参数表实际参数表实际参数表);a=10 a=10 a=10 a
10、=10 赋值表达式赋值表达式赋值表达式赋值表达式a=10;a=10;a=10;a=10;赋值语句赋值语句赋值语句赋值语句k+k+k+k+表达式表达式表达式表达式k+;k+;k+;k+;表达式语句表达式语句表达式语句表达式语句 while(while(getchargetchar()!=n)()!=n);本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为重新输入。这里的循环体为重新输入。这里的循环体为重新输入。这里的循环体为空语句空语句空语
11、句空语句。空语句空语句空语句空语句 只有分号只有分号只有分号只有分号“;”组成的语句称为空语句。空语句是什么组成的语句称为空语句。空语句是什么组成的语句称为空语句。空语句是什么组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。也不执行的语句。在程序中空语句可用来作空循环体。也不执行的语句。在程序中空语句可用来作空循环体。也不执行的语句。在程序中空语句可用来作空循环体。printfprintf(C Program)(C Program)函数调用;函数调用;函数调用;函数调用;printfprintf(“C Program”);(“C Program”);函数调用语
12、句函数调用语句函数调用语句函数调用语句 其功能是输出字符串其功能是输出字符串其功能是输出字符串其功能是输出字符串C ProgramC Program。l l 说明:说明:说明:说明:(1)(1)“”“”“”“”后不加分号后不加分号后不加分号后不加分号(2)(2)(2)(2)语法上和单一语句相同语法上和单一语句相同语法上和单一语句相同语法上和单一语句相同(3)(3)(3)(3)复合语句可嵌套复合语句可嵌套复合语句可嵌套复合语句可嵌套 (4)(4)复合语句内定义的变量只能在复合语句内使用。复合语句内定义的变量只能在复合语句内使用。复合语句内定义的变量只能在复合语句内使用。复合语句内定义的变量只能在
13、复合语句内使用。语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C 复合语句复合语句复合语句复合语句 用用用用 括起来的一组语句括起来的一组语句括起来的一组语句括起来的一组语句。intint a=2,b=3,c;a=2,b=3,c;c=a+b;c=a+b;printfprintf(c=%(c=%dndn,c);,c);l l 一般形式为:一般形式为:一般形式为:一般形式为:数据说明部分;数据说明部分;数据说明部分;数据说明部分;执行语句部分;执行语句部分;执行语句部分;执行语句部分;#include#include void main()void main()intin
14、t x=10,y=20,z;x=10,y=20,z;z=x+y;z=x+y;intint z;z;z=x*y;z=x*y;printfprintf(z=%(z=%dndn,z);,z);/输出复合语句中输出复合语句中输出复合语句中输出复合语句中z z z z的值的值的值的值 printfprintf(z=%(z=%dndn,z);,z);/输出复合语句外输出复合语句外输出复合语句外输出复合语句外z z z z的值的值的值的值 输出结果:输出结果:输出结果:输出结果:z=200z=200z=200z=200z=30z=30z=30z=30语语言言程程序序设设计计 第第三三章章 选选择择结结构构程
15、程序序设设计计C 控制语句控制语句控制语句控制语句 用来实现一定的控制功能的语句称为用来实现一定的控制功能的语句称为用来实现一定的控制功能的语句称为用来实现一定的控制功能的语句称为控制语句控制语句控制语句控制语句 。C C C C语语语语言用控制语句来实现选择结构和循环结构。语言有九种言用控制语句来实现选择结构和循环结构。语言有九种言用控制语句来实现选择结构和循环结构。语言有九种言用控制语句来实现选择结构和循环结构。语言有九种控制语句。可分成以下三类:控制语句。可分成以下三类:控制语句。可分成以下三类:控制语句。可分成以下三类:if()else if()else switchswitchfor
16、()for()while()while()dowhile()dowhile()continuecontinuebreakbreakgotogotoreturnreturn分支分支分支分支循环循环循环循环辅助控制辅助控制辅助控制辅助控制本章讨论本章讨论本章讨论本章讨论3.4 3.4 选择结构的程序设计选择结构的程序设计 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C1.if1.if语句语句语句语句 简单简单简单简单ifififif语句形式语句形式语句形式语句形式 if (if (if (if (表达式表达式表达式表达式)语句语句语句语句;l l 格式格式格式格式:l
17、l 执行流程:执行流程:执行流程:执行流程:语句语句语句语句表达式表达式表达式表达式TF例如:下面的程序段是输入两个整数,输出其中的大数。例如:下面的程序段是输入两个整数,输出其中的大数。例如:下面的程序段是输入两个整数,输出其中的大数。例如:下面的程序段是输入两个整数,输出其中的大数。intint a,b,max;a,b,max;printfprintf(input two numbers:);(input two numbers:);scanfscanf(%(%d%dd%d,&a,&b);,&a,&b);max=a;max=a;if(max b)if(max b)if(a b)printf
18、printf(max=%(max=%dndn,a);,a);else else printfprintf(max=%(max=%dndn,b);,b);语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C1.if1.if语句语句语句语句 if_else_ifif_else_ifif_else_ifif_else_if形式形式形式形式 if(if(if(if(表达式表达式表达式表达式1)1)1)1)语句语句语句语句1;1;1;1;else if(else if(else if(else if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句2;2;2;2;else
19、if(else if(else if(else if(表达式表达式表达式表达式3)3)3)3)语句语句语句语句3;3;3;3;else else else else 语句语句语句语句n;n;n;n;l l 格式格式格式格式:l l 执行流程:执行流程:执行流程:执行流程:表达式表达式表达式表达式1 1 1 1语句语句语句语句1 1 1 1语句语句语句语句2 2 2 2F表达式表达式表达式表达式2 2 2 2表达式表达式表达式表达式3 3 3 3F语句语句语句语句3 3 3 3语句语句语句语句n n n nTFTT例如:下面的程序段是判断输入字符的种类。例如:下面的程序段是判断输入字符的种类。例
20、如:下面的程序段是判断输入字符的种类。例如:下面的程序段是判断输入字符的种类。char c;char c;printfprintf(Enter a character:);(Enter a character:);c=c=getchargetchar();();if if(c 0 x20)(c=0&c=0&c=A&c=A&c=a&c=a&c 0 if x 0 printfprintf(“x (“x 0”);0”);例例例例:if(x 0)if(x 0)printfprintf(“x (“x 0”);0”);if(a=5)if(a=5)语句;语句;语句;语句;/表达式的值永远为非表达式的值永远为
21、非表达式的值永远为非表达式的值永远为非0 0,所以其后的语句总是要执行的所以其后的语句总是要执行的所以其后的语句总是要执行的所以其后的语句总是要执行的 if(b)if(b)语句;语句;语句;语句;/等价于等价于等价于等价于if(b!=0)if(b!=0)语句;语句;语句;语句;例例例例:if(a b)if(a b)a+;a+;b+;b+;else else a=0;a=0;b=1;b=1;例例例例:if(a b)if(a b)a+;a+;b+;b+;else else a=0;a=0;b=1;b=1;例例例例:#include#include void main()void main()int
22、int x=0;x=0;if(if(x=0 x=0)printfprintf(“x=0n”);(“x=0n”);else else printfprintf(“x!=(“x!=0n”);0n”);例例例例:#include#include void main()void main()intint x=0;x=0;if(if(x=0 x=0)printfprintf(“x=0n”);(“x=0n”);else else printfprintf(“x!=(“x!=0n”);0n”);运行结运行结运行结运行结果:果:果:果:x=0 x=0运行结运行结运行结运行结果:果:果:果:x!=0 x!=0i
23、fififif语句嵌套语句嵌套语句嵌套语句嵌套:l l 一般形式:一般形式:一般形式:一般形式:if(expr1)if(expr1)if(expr2)statement1if(expr2)statement1 else statement2 else statement2elseelse if(expr3)statement3if(expr3)statement3 else statement4 else statement4内嵌内嵌内嵌内嵌if if内嵌内嵌内嵌内嵌if ifif(expr1)if(expr1)if(expr2)if(expr2)statement1 statement1 e
24、lse else statement2 statement2内嵌内嵌内嵌内嵌if ifif(expr1)if(expr1)if(expr2)if(expr2)statement1 statement1elseelse statement3 statement3 内嵌内嵌内嵌内嵌if ifif(expr1)if(expr1)statement1 statement1elseelse if(expr3)if(expr3)statement3 statement3 else else statement4 statement4内嵌内嵌内嵌内嵌if if语语言言程程序序设设计计 第第三三章章 选选择择
25、结结构构程程序序设设计计C例例例例 输入两数并判断其大小关系输入两数并判断其大小关系输入两数并判断其大小关系输入两数并判断其大小关系#include#include void main()void main()intint x,y;x,y;printfprintf(Enter integer x,y:);(Enter integer x,y:);scanfscanf(%d,%d,&x,&y);(%d,%d,&x,&y);if(x!=y)if(x!=y)if(x y)if(x y)printfprintf(X Yn);(X Yn);else else printfprintf(X Yn);(X
26、Yn);else else printfprintf(X=Yn);(X=Yn);运行结果:运行结果:运行结果:运行结果:Enter integer x,y:12,23Enter integer x,y:12,23 XY XY XY Enter integer x,y:12,12 Enter integer x,y:12,12 X=Y X=Y语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C if ()if ()if ()else else else 语言规定,在缺省语言规定,在缺省语言规定,在缺省
27、语言规定,在缺省 时,时,时,时,elseelseelseelse总是和它上总是和它上总是和它上总是和它上面离它最近的未配对的面离它最近的未配对的面离它最近的未配对的面离它最近的未配对的ifififif配对配对配对配对 例例例例:#include#include void main()void main()intint a=1,b=-1;a=1,b=-1;if (a 0)if (a 0)if (b 0)if (b 0)a+;a+;elseelse a-;a-;printfprintf(a=%(a=%dndn););例例例例:#include#include void main()void ma
28、in()intint a=1,b=-1;a=1,b=-1;if (a 0)if (a 0)if (b 0)if (b 0)a+;a+;elseelse a-;a-;printfprintf(a=%(a=%dndn););运行结运行结运行结运行结果:果:果:果:a=0a=0运行结运行结运行结运行结果:果:果:果:a=1a=1l l if_elseif_elseif_elseif_else 配对原则配对原则配对原则配对原则例:例:例:例:if(a=b)if(a=b)if(b=c)if(b=c)printf(“aprintf(“a=b=c”);=b=c”);else else printf(“apr
29、intf(“a!=b”);!=b”);修改:修改:修改:修改:if(a=b)if(a=b)if(bif(b=c)=c)printf(“aprintf(“a=b=c”);=b=c”);else else printf(“aprintf(“a!=b”);!=b”);实现实现实现实现if else if else 正确配对方法:加正确配对方法:加正确配对方法:加正确配对方法:加 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C例:考虑下面程序输出结果例:考虑下面程序输出结果例:考虑下面程序输出结果例:考虑下面程序输出结果:void main()void main()inti
30、nt x=100,a=10,b=20;x=100,a=10,b=20;intint v1=5,v2=0;v1=5,v2=0;if(a b)if(a=90:case score=90:printfprintf(A);break;(A);break;case score=80&score=80&score=70&score=70&score=60&score=60&score 70:printfprintf(“E);break;(“E);break;default:default:printfprintf(“F);break;(“F);break;case case 后面包含变量后面包含变量后面包
31、含变量后面包含变量l l 使用使用使用使用switchswitchswitchswitch语句注意事项语句注意事项语句注意事项语句注意事项语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C (5)case(5)case(5)case(5)case后面的后面的后面的后面的“常量表达式常量表达式常量表达式常量表达式”仅起语句标号作用,并仅起语句标号作用,并仅起语句标号作用,并仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始不进行条件判断。系统一旦找到入口标号,就从此标号开始不进行条件判断。系统一旦找到入口标号,就从此标号开始不进行条件判断。系统一旦找
32、到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上breakbreakbreakbreak语句,以便结语句,以便结语句,以便结语句,以便结束束束束switchswitchswitchswitch语句。语句。语句。语句。#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);brea
33、k;(Yesn);break;case N:case N:printfprintf(Non);break;(Non);break;case A:case A:printfprintf(Alln);break;(Alln);break;default :default :printfprintf(Yes,NoYes,No or Alln);or Alln);运行结果:运行结果:运行结果:运行结果:NoNo/假设输入为:假设输入为:假设输入为:假设输入为:N N#include#include void main()void main()char char chch;chch=getchgetch
34、();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);break;(Yesn);break;case N:case N:printfprintf(Non);(Non);case A:case A:printfprintf(Alln);break;(Alln);break;default :default :printfprintf(Yes,NoYes,No or Alln);or Alln);/假设输入为:假设输入为:假设输入为:假设输入为:N N运行结果:运行结果:运行结果:运行结果:NoNo ALL ALLl l 使用使用使用使
35、用switchswitchswitchswitch语句注意事项语句注意事项语句注意事项语句注意事项语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C (6)(6)(6)(6)多个多个多个多个casecasecasecase子句,可共用同一语句(组)。子句,可共用同一语句(组)。子句,可共用同一语句(组)。子句,可共用同一语句(组)。例:当例:当例:当例:当a a a a的值是的值是的值是的值是1 1 1 1、2 2 2 2、3 3 3 3时,将时,将时,将时,将b b b b的值加的值加的值加的值加2 2 2 2,当,当,当,当a a a a的值是的值是的值是的值是4
36、4 4 4、5 5 5 5、6 6 6 6时,将时,将时,将时,将b b b b的值减的值减的值减的值减2 2 2 2。intint a,b=4;a,b=4;scanfscanf(%d,&a);(%d,&a);switch(a)switch(a)case 1:case 1:case 2:case 2:case 3:b+=2;break;case 3:b+=2;break;case 4:case 4:case 5:case 5:case 6:b-=2;break;case 6:b-=2;break;default:b*=2;break;default:b*=2;break;printfprint
37、f(b=%(b=%dndn,b);,b);l l 使用使用使用使用switchswitchswitchswitch语句注意事项语句注意事项语句注意事项语句注意事项语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C (7)(7)(7)(7)casecase子句和子句和defaultdefault子句如果都带有子句如果都带有breakbreak子句,那子句,那么它们之间顺序的变化不会影响么它们之间顺序的变化不会影响switchswitch语句的功能。语句的功能。#include#include void main()void main()char char chch;chc
38、h=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Yesn);break;break;case N:case N:printfprintf(Non);(Non);break;break;case A:case A:printfprintf(Alln);(Alln);break;break;default:default:printfprintf(Yes,NoYes,No or or Alln);Alln);break;break;#include#include void main()void main
39、()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Yesn);break;break;default:default:printfprintf(Yes,NoYes,No or Alln);or Alln);break;break;case N:case N:printfprintf(Non);(Non);break;break;case A:case A:printfprintf(Alln);(Alln);break;break;l l 使用使用使用使用switc
40、hswitchswitchswitch语句注意事项语句注意事项语句注意事项语句注意事项语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C (8)case(8)case(8)case(8)case子句和子句和子句和子句和defaultdefaultdefaultdefault子句如果有的带有子句如果有的带有子句如果有的带有子句如果有的带有breakbreakbreakbreak子句,子句,子句,子句,而有的没有带而有的没有带而有的没有带而有的没有带breakbreakbreakbreak子句,那么它们之间顺序的变化可能会影子句,那么它们之间顺序的变化可能会影子句,那么它们
41、之间顺序的变化可能会影子句,那么它们之间顺序的变化可能会影响输出的结果。响输出的结果。响输出的结果。响输出的结果。#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Yesn);break;break;case N:case N:printfprintf(Non);(Non);break;break;case A:case A:printfprintf(Alln);(Alln);break;b
42、reak;default:default:printfprintf(Yes,NoYes,No or or Alln);Alln);#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Yesn);break;break;default:default:printfprintf(Yes,NoYes,No or Alln);or Alln);case N:case N:printfprintf(No
43、n);(Non);break;break;case A:case A:printfprintf(Alln);(Alln);break;break;/假设输入为:假设输入为:假设输入为:假设输入为:B B运行结果:运行结果:运行结果:运行结果:Yes,NoYes,No or All or All运行结果:运行结果:运行结果:运行结果:Yes,NoYes,No or All or AllNoNo/假设输入为:假设输入为:假设输入为:假设输入为:B Bl l 使用使用使用使用switchswitchswitchswitch语句注意事项语句注意事项语句注意事项语句注意事项语语言言程程序序设设计计 第第
44、三三章章 选选择择结结构构程程序序设设计计C (9)switch(9)switch(9)switch(9)switch语句可以嵌套。语句可以嵌套。语句可以嵌套。语句可以嵌套。void main()void main()intint x=1,y=0,a=0,b=0;x=1,y=0,a=0,b=0;switch(x)switch(x)case 1:case 1:switch(y)switch(y)case 0:a+;break;case 0:a+;break;case 1:b+;break;case 1:b+;break;case 2:a+;b+;break;case 2:a+;b+;break;
45、case 3:a+;b+;case 3:a+;b+;printfprintf(nana=%d,b=%d,a,b);=%d,b=%d,a,b);运行结果:运行结果:运行结果:运行结果:a=2a=2,b=1b=1 语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C选择结构程序设计举例选择结构程序设计举例 【例例例例1 1 1 1】已知某公司员工的保底薪水为已知某公司员工的保底薪水为已知某公司员工的保底薪水为已知某公司员工的保底薪水为500500500500,某月所接,某月所接,某月所接,某月所接工程的利润工程的利润工程的利润工程的利润profitprofitprofitpr
46、ofit(整数)与利润提成的关系如下所示(整数)与利润提成的关系如下所示(整数)与利润提成的关系如下所示(整数)与利润提成的关系如下所示(计量单位:元)。计算员工的当月薪水。(计量单位:元)。计算员工的当月薪水。(计量单位:元)。计算员工的当月薪水。(计量单位:元)。计算员工的当月薪水。工程利润工程利润工程利润工程利润profitprofit提成比率提成比率提成比率提成比率profit1000profit1000没有提成没有提成10001000profit2000profit2000提成提成10%10%20002000profit5000profit5000提成提成15%15%50005000
47、profit10000profit10000提成提成20%20%1000010000profitprofit提成提成25%25%程序应该这样来设计:程序应该这样来设计:程序应该这样来设计:程序应该这样来设计:首先要定义一个变量用来存放员工所接工程的利润;首先要定义一个变量用来存放员工所接工程的利润;首先要定义一个变量用来存放员工所接工程的利润;首先要定义一个变量用来存放员工所接工程的利润;其次提示用户输入员工所接工程的利润,并调用其次提示用户输入员工所接工程的利润,并调用其次提示用户输入员工所接工程的利润,并调用其次提示用户输入员工所接工程的利润,并调用scanfscanfscanfscanf
48、函数接受用户输函数接受用户输函数接受用户输函数接受用户输入员工所接工程的利润;入员工所接工程的利润;入员工所接工程的利润;入员工所接工程的利润;然后根据上表的规则,计算该员工当月的提成比率。然后根据上表的规则,计算该员工当月的提成比率。然后根据上表的规则,计算该员工当月的提成比率。然后根据上表的规则,计算该员工当月的提成比率。最后计算该员工当月的薪水(保底薪水最后计算该员工当月的薪水(保底薪水最后计算该员工当月的薪水(保底薪水最后计算该员工当月的薪水(保底薪水+所接工程的利润所接工程的利润所接工程的利润所接工程的利润*提成比率),提成比率),提成比率),提成比率),并输出结果。并输出结果。并输
49、出结果。并输出结果。语语言言程程序序设设计计 第第三三章章 选选择择结结构构程程序序设设计计C#include#include void main()void main()long profit;long profit;/所接工程的利润所接工程的利润所接工程的利润所接工程的利润 float ratio;float ratio;/提成比率提成比率提成比率提成比率 float salary=500;float salary=500;/薪水,初始值为保底薪水薪水,初始值为保底薪水薪水,初始值为保底薪水薪水,初始值为保底薪水500500 printfprintf(Input profit:);(Inp
50、ut profit:);/提示输入所接工程的利润提示输入所接工程的利润提示输入所接工程的利润提示输入所接工程的利润 scanfscanf(%ld,&profit);(%ld,&profit);/输入所接工程的利润输入所接工程的利润输入所接工程的利润输入所接工程的利润 /计算提成比率计算提成比率计算提成比率计算提成比率 if if(profit=1000)(profit=1000)ratio=0;ratio=0;else ifelse if(profit=2000)(profit=2000)ratio=(float)0.10;ratio=(float)0.10;else ifelse if(pr