、选择结构程序设计 1、i语句 if与ese的配对关系:else总是与它上面的最近的未 配对的配对即就近配对原则 f() f()语句1; 如果想让第一个else与第 个配对可写成 else i)语句2;内嵌fi() else语句3; ff()语句;}内嵌 第一个ese虽然与第 else 个计在同一列上,但实际 上它是与第二个配对, if()语句 内嵌f 因为它们相距最近 else语句;
三、选择结构程序设计 1、if语句 if与else的配对关系:else总是与它上面的最近的未 配对的if配对.即就近配对原则. if( ) if( ) 语句1; else if( ) 语句2; else 语句3; 第一个else虽然与第一 个if 在同一列上,但实际 上它是与第二个if 配对, 因为它们相距最近. 如果想让第一个else与第 一个if配对可写成: if ( ) {if ( ) 语句; } 内嵌if else if ( ) 语句; else 语句; 内嵌if 内嵌if
三、选择结构程序设计 1、i语句示例 【例二】以下程序的执行结果是什么? maino 哦,原来是因 int×=2y=-1,z=2; 为else总是与 靠近它的配 if(X<y) 套 f(y<0)z=0; else z+=1 printf49dhn” 常见错误: f(x>0) f(x=2) f(1<=X<=10) y=3X+2; printf(y>0”) y=x-1
三、选择结构程序设计 1、if语句 示例 【例二】以下程序的执行结果是什么? main( ) { int x=2,y=-1,z=2; if (x<y) if (y<0) z=0; else z+=1; printf(“%d\n”,z); } /*结果是2*/ 哦,原来是因 为else 总是与 靠近它的if配 套… 常见错误: if (x>0) ; if (x=2) if (1<=x<=10) y=3x+2; printf(“y>0”); y=x-1;
、选择结构程序设计 止ch D98 if… else if…else多条件单结果 多分支选择语句 switch单条件多种结果(开关语句) switch(e) /*e-表达式(整型、字符型或枚举型) case c:语句组1; clcn case C2:语句组2 常量(整数、字符、 常量表达式如3+4,不 含变量或函数) case ch:语句组n; default:语句组n+1;/可缺省* default-不是c1~cn的情况(位置不一定在最后)
三、选择结构程序设计 2、switch语句 P98 switch 语句的一般形式: switch(e) { case c1:语句组1; case c2:语句组2; …… case cn:语句组n; default:语句组n+1; /*可缺省*/ } /*e – 表达式(整型、字符型或枚举型)*/ c1~cn 常量(整数、字符、 常量表达式如3+4,不 含变量或函数) default – 不是c1~cn的情况 (位置不一定在最后)
switch语句的执行过程: switch语句先计算表达式的值,然后同多个case语 句后的常量比较,找到相等的case常量则执行该常量 冒号后的语句段,并从这个入口一直执行下面所有冒 号后的语句,直到 switch语句结束。如果执行一个或 几个冒号后的语句就要跳出 switch语句,则可以在跳 出处使用 break语句。如果 switch语句后表达式的值 找不到匹配的case常量,就执行 default后面的语句段 直到结束。 default是任选项,如果没有该语句,则在 所有配对都失败时,什么也不执行
⚫ switch语句的执行过程: switch语句先计算表达式的值,然后同多个case语 句后的常量比较,找到相等的case常量则执行该常量 冒号后的语句段, 并从这个入口一直执行下面所有冒 号后的语句,直到switch语句结束。如果执行一个或 几个冒号后的语句就要跳出switch语句,则可以在跳 出处使用break语句。如果switch语句后表达式的值 找不到匹配的case常量,就执行default后面的语句段 直到结束。default是任选项,如果没有该语句, 则在 所有配对都失败时,什么也不执行
、选择结构程序设计 2、 switch语句示例 main( char s scanf(%c”,&s); 结果: switch(s) 60~69 <60 case A: printf(85,) 错误输入 case B: printf( 70-84n") caseC: printf(60-69n) case D’: printf((“<60n default:pint(“错误输入in");‖输入c,求输出结果
三、选择结构程序设计 2、switch语句 示例 main() { char s; scanf(“%c”,&s); switch(s) { case ‘A’ : printf(“85~100\n”); case ‘B’ : printf(“70~84\n”); case ‘C’ : printf(“60~69\n”); case ‘D’ : printf(“<60\n”); default : printf(“错误输入\n”); } } 输入c,求输出结果。 结果: 60~69 <60 错误输入 ?!