第04章--选择结构程序设计.ppt
《第04章--选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第04章--选择结构程序设计.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C程序设计程序设计选择程序设计选择程序设计讲授人:许莉email:tel:13889876920office:图书馆826选择结构的程序设计选择结构的程序设计 1.if1.if语句语句语句语句 简单简单简单简单ifififif语句形式语句形式语句形式语句形式 if (if (if (if (表达式表达式表达式表达式)语句语句语句语句;l l 格式格式格式格式:l l 执行流程:执行流程:执行流程:执行流程:语句语句语句语句表达式表达式表达式表达式T例如:下面的程序段是输入两个整数,输出其中的大数。例如:下面的程序段是输入两个整数,输出其中的大数。例如:下面的程序段是输入两个整数,输出其中的大数
2、。例如:下面的程序段是输入两个整数,输出其中的大数。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)printfprintf(max=%(max=%dndn,a);,a);else else printfprintf(max=%(max=%dndn,b);,b);if if语句语句语句语句 if_else_ifif_else_ifif_else_
3、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 if(else if(else if(else if(表达式表达式表达式表达式3)3)3)3)语句语句语句语句3;3;3;3;else if(else if(else if(else if(表达式表达式表达式表达式n)n)n)n)语句语句语句语句n;n;n;n;else else else else 语句语句语句语
4、句n+1;n+1;n+1;n+1;l l 格式格式格式格式:l l 执行流程:执行流程:执行流程:执行流程:表达式表达式表达式表达式1 1 1 1F表达式表达式表达式表达式2 2 2 2表达式表达式表达式表达式3 3 3 3FTFTTF表达式表达式表达式表达式n n n n语句语句语句语句n n n n语句语句语句语句n+1n+1n+1n+1T语句语句语句语句3 3 3 3语句语句语句语句2 2 2 2语句语句语句语句1 1 1 1例如:下面的程序段是判断输入字符的种类。例如:下面的程序段是判断输入字符的种类。例如:下面的程序段是判断输入字符的种类。例如:下面的程序段是判断输入字符的种类。ch
5、ar 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)语句;语句;语句;语句;/表达式的值永远为非表达式的值永远为非表达式的值永远为非表达式的值永远为非0 0,所以其后的语句总是要执行的所以其后的
6、语句总是要执行的所以其后的语句总是要执行的所以其后的语句总是要执行的 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()intint x=0;x=0;if(if(x=0 x=0)printfprintf(“x
7、=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!=0ifififif语句嵌套语句嵌套语句嵌套语句嵌套:l l 一般形式:一般形式:一般形
8、式:一般形式: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 else else statement2 statement2内嵌内嵌内嵌内嵌if
9、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例例例例 输入两数并判断其大小关系输入两数并判断其大小关系输入两数并判断其大小关系输入两数并判断其大小关系#include#inc
10、lude 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 Yn);else else printfprintf(X=Yn);(X=Yn);运行结果:运行结果:运行结果:运行结果:Enter integer x,y:
11、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 if ()if ()if ()else else else 语言规定,在缺省语言规定,在缺省语言规定,在缺省语言规定,在缺省 时,时,时,时,elseelseelseelse总是和它上总是和它上总是和它上总是和它上面离它最近的未配对的面离它最近的未配对的面离它最近的未配对的面离它最近的未配对的ifififif配对配对配对配对 例例例例:#include#include void main()void main
12、()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 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););运行结运行结运行结运行结果:果:果:果:a=0a=0运行结运行结运行结运行结果:果:
13、果:果:a=1a=1l if_elseif_else 配对原则配对原则例:例:例:例:if(a=b)if(a=b)if(b=c)if(b=c)printf(“aprintf(“a=b=c”);=b=c”);else else printf(“aprintf(“a!=b”);!=b”);修改:修改:修改:修改:if(a=b)if(a=b)if(b=c)if(b=c)printf(“aprintf(“a=b=c”);=b=c”);else else printf(“aprintf(“a!=b”);!=b”);实现实现实现实现if else if else 正确配对方法:加正确配对方法:加正确配对方
14、法:加正确配对方法:加 例:考虑下面程序输出结果例:考虑下面程序输出结果例:考虑下面程序输出结果例:考虑下面程序输出结果:void main()void main()intint 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
15、;(“E);break;default:default:printfprintf(“F);break;(“F);break;case case 后面包含变量后面包含变量后面包含变量后面包含变量使用使用switchswitch语句注意事项语句注意事项 (5)case(5)case(5)case(5)case后面的后面的后面的后面的“常量表达式常量表达式常量表达式常量表达式”仅起语句标号作用,并仅起语句标号作用,并仅起语句标号作用,并仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始不进行条件判断。系统一旦找到入口标号,就从此标号开始不进行条件判断。系统一旦找到入口标号,就从
16、此标号开始不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上执行,不再进行标号判断,所以必须加上breakbreakbreakbreak语句,以便结语句,以便结语句,以便结语句,以便结束束束束switchswitchswitchswitch语句。语句。语句。语句。#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:print
17、fprintf(Yesn);break;(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 ch
18、ch;chch=getchgetch();();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
19、ALL ALL使用使用switchswitch语句注意事项语句注意事项 (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 4 4 4、5 5 5 5、6 6 6 6时,将时,将时,将时,将b b b b的值减的值减的值减的值
20、减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;printfprintf(b=%(b=%dndn,b);,b);(7)(7)(7)(7)casecase子句和子句和defa
21、ultdefault子句如果都带有子句如果都带有breakbreak子句,那子句,那么它们之间顺序的变化不会影响么它们之间顺序的变化不会影响switchswitch语句的功能。语句的功能。#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:cas
22、e A:printfprintf(Alln);(Alln);break;break;default:default:printfprintf(Yes,NoYes,No or or Alln);Alln);break;break;#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,N
23、o or Alln);or Alln);break;break;case N:case N:printfprintf(Non);(Non);break;break;case A:case A:printfprintf(Alln);(Alln);break;break;使用使用switchswitch语句注意事项语句注意事项#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Yesn);brea
24、k;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);#include#include void main()void main()char char chch;chch=getchgetch();();switch(switch(chch)case Y:case Y:printfprintf(Yesn);(Ye
25、sn);break;break;default:default:printfprintf(Yes,NoYes,No or Alln);or Alln);case N:case N:printfprintf(Non);(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 AllNo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 选择 结构 程序设计
限制150内