第4章流程控制 4.1关系运算符和关系表达式 4.2逻辑运算符和逻辑表达式 4.3if语句 4.4 switch语句 4.5循环控制
第4章 流程控制 4.1 关系运算符和关系表达式 4.2 逻辑运算符和逻辑表达式 4.3 if 语句 4.4 switch 语句 4.5 循环控制
第4章流程控制语句 4.1关系运算符和关系表达式 1.关系运算符及其优先顺序 c有6种关系运算符: !(非) 优先级相同高)算术运算符 并排两个等于号,关系运算符 个时为赋值号。8&和 优先级相同(低)赋值运算符低
第4章 流程控制语句 4.1 关系运算符和关系表达式 1. 关系运算符及其优先顺序 C 有 6 种关系运算符: > = 优先级相同(高) == ! = 优先级相同(低) ! (非) 高 算术运算符 关系运算符 && 和 ¦ ¦ 赋值运算符 低 并排两个等于号, 一个时为赋值号
2.关系表达式 关系表达式是用关系运算符将两个以上算术、关 系、逻辑、赋值或字符表达式连接起来的式子。 关系表达式的值是一个逻辑值,“真”(非0)或 “假”()。 例如 c>a+b等效于:c>(a+b) a>b=c (apb)=c aSbc a=(b>c)
2. 关系表达式 关系表达式是用关系运算符将两个以上算术、关 系、逻辑、赋值或字符表达式连接起来的式子。 关系表达式的值是一个逻辑值,“真” (非0) 或 “假”(0)。 例如: c>a+b 等效于: c>(a+b) a>b!=c (a>b)!=c a==bc a=(b>c)
42逻辑运算符和逻辑表达式「!() 1.逻辑运算符及其优先顺序 算术运算符 C的三种逻辑运算符 关系运算符 &逻辑与 逻辑或 &&和H !逻辑非 赋值运算符低 “&&”和“H”为双目运算符,“P为单目运算符。 a&&b若a,b均为真,则a&&b为真,否则为假。 a"b若a,b均为真,或之一为真,则ab为真,否则为假 a若a为真,则!a为假,否则为真。 ●优先顺序 (asb)&&x>y)= a>b & x>y (a==bl(xe==y)=a==bl==y (!a)(a>b)→!ama>b (m=a>b)&&(n=c>d)→(m=(a>b))&&(n=(c>d)
4.2 逻辑运算符和逻辑表达式 1. 逻辑运算符及其优先顺序 • C的三种逻辑运算符 && 逻辑与 ¦¦ 逻辑或 逻辑非 “&&” 和 “¦¦” 为双目运算符,“!” 为单目运算符。 a && b 若a, b均为真,则a && b为真,否则为假。 a ¦¦ b 若a, b均为真, 或之一为真, 则a¦¦b为真, 否则为假 !a 若a为真,则 !a 为假,否则为真。 • 优先顺序 (a>b) && (x>y) a>b && x>y (a= =b) ¦¦ (x= =y) a= =b ¦¦ x= =y ( ! a) ¦¦ (a>b) ! a ¦¦ a>b (m=a>b) && (n=c>d) (m=(a>b) ) &&(n=(c>d) ) ! (非) 高 算术运算符 关系运算符 && 和 ¦ ¦ 赋值运算符 低
2.逻辑表达式 逻辑表达式是用逻辑运算符将关系表达式或逻辑 量连接起来的式子。逻辑表达式的值是一个逻辑量“真” (非0)或“假”(0)。 3.逻辑表达式求解 a&&b&&c若a为假,则表达式值为假。 a c 若a为真,则表达式值为真。 5>38&2H84-!0若(5>3&&2)为真,则表达式值为真。 在 Turbo C中,&&和"的优先级相同
2. 逻辑表达式 逻辑表达式是用逻辑运算符将关系表达式或逻辑 量连接起来的式子。逻辑表达式的值是一个逻辑量“真” (非0) 或 “假”(0)。 3. 逻辑表达式求解 a && b && c 若 a 为假,则表达式值为假。 a ¦¦ b ¦¦ c 若 a 为真,则表达式值为真。 5>3&&2¦¦83&&2)为真,则表达式值为真。 在Turbo C中,&& 和 ¦¦的优先级相同
4.3近语句 1.i语句的一般形式 oif(表达式)语句; ②f(表达式)语句1 else语句2; 其中: “语句”和“语句可以是用{括起来的复合语句 °“语句2既可以是用括起来的复合语句,也可 以是或②形式的语句 “语句1后面的;”是必须的
4.3 if 语句 1. if 语句的一般形式 if (表达式) 语句; if (表达式) 语句1; else 语句2; 其中: “语句”和“语句1”可以是用{ }括起来的复合语句。 “语句2”既可以是用{ } 括起来的复合语句,也可 以是 或 形式的 if 语句。 “语句1”后面的“ ; ”是必须的
例4.1输入三个实数,按小到大顺序输出。 main() float a, b, c, t scanf(%f, %f, %f &a, &b, &c); if(a>b){仁a;a=b;b=t} if(ac)ta; a=c; c=t if(b>itb; b=cc=t; 1 printf("%52,%525%52”,a,b,c); 若a>b,则通过中间变量t交换变量a,b的值
例4.1 输入三个实数,按小到大顺序输出。 main( ) { float a,b,c,t; scanf(“%f,%f,%f ”,&a,&b,&c); if (a>b) { t=a; a=b; b=t; } if (a>c) { t=a; a=c; c=t; } if (b>c) { t=b; b=c; c=t; } printf(“%5.2f,%5.2f,%5.2f ”,a,b,c); } 若a>b, 则通过中间变量 t 交换变量a, b的值
2.if语句的嵌套 在近语句中又包含一个或多个近语句称为if语 句的嵌套。 ifo f)语句1:1 ese语句2 else if()语句3; else语句4; 注:从最内层开始,else总是与它前面最近的未曾 配对的配对,除非用花括号改变其配对关系
2. if 语句的嵌套 在 if 语句中又包含一个或多个 if 语句称为 if 语 句的嵌套。 if ( ) if ( ) 语句1; else 语句2; else if ( ) 语句3; else 语句4; 注:从最内层开始,else总是与它前面最近的未曾 配对的if 配对,除非用花括号改变其配对关系
(x≤0) 例42编程求y={0/(x=0)的值。 (x>0) x的值从键盘输入 maino [int x,y; scanf(%d”,8k); if (x<0)y= else if (X==0) y=0; else y 1 printf(“x=%d,y=%dⅦn”,x,y);
例4.2 编程求 y = main( ) { int x,y; scanf(“%d”,&x); if (x 0 ) 的值。 x 的值从键盘输入
3.条件运算符 若有如下语句: if (a>b)maxa; else maxed. 则可以用下面的条件运算符处理: max =(asb? a: b; 同样,对如下语句: if (a>b) printf("%d,a; else printf((%d”b) 也可用下面的语句代替: printf(%d,>b? a: b);
3. 条件运算符 若有如下 if 语句: if (a>b) max=a; else max=b; 则可以用下面的条件运算符处理: max = (a>b) ? a : b; 同样,对如下 if 语句: if (a>b) printf(“%d”,a); else printf(“%d”,b); 也可用下面的语句代替: printf(“%d”,a>b ? a : b);