条件表达式 8一般形式:表达式1?表达式2:表达式3 执行过程 功能:相当于条件语句,但不能取代一舭ⅲ语旬 非0 表达式L 0 表达式2 表达式3 例if(a>b) printf("%d", a);b?a: b); else printf(%od”,b);
条件表达式 ❖一般形式: 表达式1 ?表达式2 :表达式3 ❖执行过程 ❖功能:相当于条件语句,但不能取代一般if语句 例 if (a>b) printf(“%d”,a); else printf(“%d”,b); printf(“%d”,a>b?a:b); 表达式1 表达式2 表达式3 非0 =0 语 言 程 序 设 计 第 四 章 选 择 结 构 设 计 C
853选择型程序设计 ★if语句(条件选择语旬) 表达式 0 if语旬的三种形式 非0 ●形式一: 语句 ◆格式:if(褒达式) 语句 ◆执行过程: Ro]: if(x>y) printf(f % ed”x) 非0 表达式 语句1 else 语句1 语句2 语句2 ◆执行过程 例:if(x>y)max=x; eise max-y
§5.3 选择型程序设计 if语句(条件选择语句) ❖if语句的三种形式 ⚫形式一: ◆格式:if (表达式) 语句 ◆执行过程: 表达式 语句 非0 =0 例:if (x>y) printf(“%d”,x); 表达式 语句1 语句2 非0 =0 ⚫形式二: ◆格式:if (表达式) 语句1 else 语句2 ◆执行过程:例:if (x>y) max=x; else max=y;
if( expr1) statement ●形式三: ◆格式 else if (expr2) statement2 else if (expr3) statement ◆执行过程: ese statement I 例:if( (salary>10000 index=0.4 else if(salary>800) index=0.3 else if (salary>600) index=0.2 else if(salary>400) index=0.1 eise index=0 statemnt statemnt statement statement
⚫形式三: ◆格式: if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 …... [ else statementn ] expr1 statemnt 1 非0 =0 expr2 expr3 statemnt n statemnt 3 statemnt 2 非0 非0 =0 =0 ◆执行过程: 例:if (salary>1000) index=0.4; else if (salary>800) index=0.3; else if (salary>600) index=0.2; else if (salary>400) index=0.1; else index=0;
●说明: ◆if后面的表达式类型任意 ◆语旬可以是复合语旬 :i(a=b&&x=:y) printf(“a=b,x=y”); 3)prit(“OK”); 例考慮下面程序的输出结果 #include maino i int x, y; scanf(%od, %d", &x, &y); x-y,y-x, Compile error! eise x++;y++; printf(“%d,%dn”,xy);
如:if(a==b&&x==y) printf(“a=b,x=y”); if(3) printf(“OK”); if(‘a’) printf(“%d”,’a’); ⚫说明: ◆if后面的表达式类型任意 ◆语句可以是复合语句 ◆ if(x) if(x!=0) if(!x) if(x==0) 例 考虑下面程序的输出结果: #include main() { int x,y; scanf(“%d,%d”,&x,&y); if(x>y) x=y; y=x; else x++; y++; printf(“%d,%d\n”,x,y); } Compile Error!
例求一个数的绝对值 井 include main int x,y5 printf( " Enter an integer scanf(%d", &x); y-x, if(yabsolute value: %d\n"x, y); 运行: Enter an integer:12 integer: -12--->absolute value: 12
#include main() { int x,y; printf("Enter an integer:"); scanf("%d",&x); y=x; if(yabsolute value:%d\n",x,y); } 例 求一个数的绝对值 运行:Enter an integer:-12 integer:-12--->absolute value :12
例输入两个数并判断两数相等否 Include main int a. b: printf(" Enter integer a:"运行: Enter integer a12 scanf(%od", &a); Enter integer b: 12 printf( Enter integer b: a==b scanf(odor &b) if(a==b) 运行: Enter integer a:12 printf(a==bn) Enter integer b: 9 ese al=b printf("a!=bIn");
#include main() { int a,b; printf("Enter integer a:"); scanf("%d",&a); printf("Enter integer b:"); scanf("%d",&b); if(a==b) printf("a==b\n"); else printf("a!=b\n"); } 例 输入两个数并判断两数相等否 运行:Enter integer a:12 Enter integer b:12 a==b 运行:Enter integer a:12 Enter integer b:9 a!=b
例判断输入字符种类 Include main k char c; printf( Enter a character: ) c=getchar if(c=0&&c='a'&&c=a&&c<=z)printf( The character is a lower letterin") else printf( The character is other characterIn); 运行: Enter a character:F1d The character is other character
#include main() { char c; printf("Enter a character:"); c=getchar(); if(c='0'&&c='A'&&c='a'&&c<='z') printf("The character is a lower letter\n"); else printf("The character is other character\n"); } 例 判断输入字符种类 运行:Enter a character: The character is a control character :8 The character is a digit 运行: Enter a character: D The character is a capital letter 运行: Enter a character: h The character is a lower letter 运行: Enter a character:F1 The character is other character
心if语旬嵌: ●一般形式 if(expr1) if(expr1) if(expr2) if (expr2) 内嵌if statement statement1 内嵌if else ese statement statement2 if(expr1) statement1 if(expr1) if(expr2) statement, eise dIse tatement2均嵌if f(expr3) else statement3内嵌if if(expr3) statements else statement4嵌if statement
❖if语句嵌套: ⚫一般形式: if (expr1) if (expr2) statement1 else statement2 else if(expr3) statement3 else statement4 内嵌if 内嵌if if (expr1) if (expr2) statement1 else statement2 内嵌if if (expr1) if (expr2) statement1 else statement3 内嵌if if (expr1) statement1 else if(expr3) statement3 else statement4 内嵌if
例输入两数并判断其大小关系 Include main (0 nt x,y printf("Enter integer x, y: "iEiT: Enter integer x, y: 12, 23 scanton od,%d",&x,&y) XY if(x>y printf(x>Yin Enter integer x, y: 12, 12 else printf("X<Yn); Y else printf( X==Yin")
例 输入两数并判断其大小关系 #include main() { int x,y; printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y) if(x>y) printf("X>Y\n"); else printf("XY Enter integer x,y:12,12 X==Y
●if~else配对原则:缺省{}时,else总是和它上 面高它最近的未配对的i对 if(...) else else else
⚫if ~ else 配对原则:缺省{ }时,else总是和它上 面离它最近的未配对的if配对 if(……) if(……) if(……) else…... else…... else…