第5章 选择结构程序设计
第5章 选择结构程序设计
通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。
真
语句组1
c语言(第五章选择结构) c语言 教学课件
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
《C语言程序设计》第5章 选择结构程序设计
break;
17
输入一个分数,输出相应的等级 (补充题) main ( ) {int c,g; 分数 等级 printf("read g (g>=0&&g<=100)"); 80—100 A scanf("%d",&g); 60—79 B c=g/10; if(c<5)c=5; 0—59 C switch (c) {case 10: case 9: case 8:printf("%d: A\n",g); break; case 7: case 6:printf("%d: B\n",g); break; case 5: printf("%d: C\n",g); break; } 18 }
20
x
E0510 另一解法 #include "math.h" main( ) {float x,y,h,x1,y1,a; printf("input x,y: "); scanf("%f%f",&x,&y); x1=fabs(x); y1=fabs(y); a=(x1-2)*(x1-2)+(y1-2)*(y1-2) ; h=0; if(a<=1) h=10; printf("x=%f,y=%f h=%f\n\n",x,y,h); }
16
为得到正确结果, 可用一个break语句 switch(grade) {case ‟A‟: printf("85-100\n"); case ‟B‟: printf("70-84\n"); case ‟C‟: printf("60-69\n"); break; break; break;
第五章 选择结构程序设计 zd
例子
switch (a){ case 1: printf(“Monday\n”); case 2: printf(“Tuesday\n”); case 3: printf(“Wednesday\n”); case 4: printf(“Thursday\n”); case 5: printf(“Friday\n”); case 6: printf(“Saturday\n”); case 7: printf(“Sunday\n”); default: printf(“error\n”); } switch (a){ case 1: printf(“Monday\n”);break; case 2: printf(“Tuesday\n”); break; case 3: printf(“Wednesday\n”); break; case 4: printf(“Thursday\n”); break; case 5: printf(“Friday\n”); break; case 6: printf(“Saturday\n”); break; case 7: printf(“Sunday\n”); break; default: printf(“error\n”); }
s=-1
5、调试:
出现的问题
if(表达式) 的处理
多个并列条件
if(500<=a<800)
规范格式
“=”与“==”
注意: 形成多重嵌套实质上是为了进行多分支选 择,这种问题一般可以使用if语句的第三种 形式,即“if-else-if”语句,或者将要介绍 的switch语句完成。因此,在一般情况下 ,较少使用if语句的嵌套结构,以使程序更 便于阅读理解。
例
设输入x=2.0,y=-3.0 问输出是?
第五章 选择结构程序设计
第五章选择结构程序设计●教学内容(1)关系运算符与关系表达式;(2)逻辑运算符与逻辑表达式;(3)if语句;(4)switch语句;(5)程序举例;●基本要求理解选择结构在程序设计中的作用,掌握关系运算符、关系表达式、逻辑运算符、逻辑表达式的用法。
重点掌握选择结构在C语言中的实现语句,嵌套的if语句与多分支语句。
一、关系运算符与关系表达式“关系运算”实际上是“比较运算”。
将两个值进行比较,判断比较的结果是否符合给定的条件。
如a>3是一个关系表达式,大于号是一个关系运算符,若a=5;则满足条件,此时,关系表达式的值为真;若a=2,则值为假。
5.1.1关系运算符及其优先次序●6种关系运算符:<,<=,>,>=(优先级相同高),==,!=(优先级相同低)●优先次序:赋——>关——>算(由低到高)5.1.2关系表达式用关系运算符将两个表达式连接起来的式子。
关系表达式的值是一个逻辑值。
即“真”或“假”。
二、逻辑运算符与逻辑表达式5.2.1逻辑运算符及其优先次序●三种逻辑运算符:&& || !(双目运算符,要求有两个运算量)5.2.2逻辑表达式当表达式为非0时值1;为0时值为0。
P90例。
实际上,逻辑运算符两侧的运算对象不但可以是0或1,也可以是任何类型的数在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才能执行该运算符。
如a&&b&&c只有a,b 均为非0时才需要判断c。
三、if语句if语句是用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一。
5.3.1if语句的三种形式●if(表达式)语句如:if(x>y)printf(“%d”,x);●if(表达式)语句1 else 语句2如:if(x>y)print f(“%d”,x); else printf(“%d”,y);●if(表达式1)语句1else if (表达式2) 语句2else if(表达式3)语句3else 语句n如P93例5.15.3.2if语句的嵌套一般形式:if( )if( )语句1else 语句2elseif( )语句3else 语句4else总是与它上面的最近的还没有配对过的if 配对。
第五章选择结构程序设计
k=k2 A2 ...
k=kn k=ki Ai ... An
5.1 关系运算符和关系表达式
• 关系运算:将两个值进行比较,判断比较的结果是否 符合给定的条件(即关系运算符)。 < • 关系运算符 <=
• 种类:< <= == >= > != • 结合方向:自左向右 • 优先级别:
> >= == !=
逻辑运算符和表达式(2)
优先级:
! (2) 高
! 算术运算符 关系运算符
高
结合方向:
! : 从右向左
&& || 赋值运算符 低
&& (11) || (12) 低
&& : 从左向右 || : 从左向右
例
a<=x && x<=b // (a<=x) && (x<=b) a>b&&x>y // (a>b)&&(x>y) a==b||x==y // (a==b)||(x==y) !a||a>b // (!a)||(a>b)
5.2 逻辑运算符和逻辑表 达式
• 逻辑运算符
• 种类: !(逻辑非) &&(逻辑与) ||(逻辑或) • 逻辑运算真值表
a 真
真 假 假
b 真
假 真 假
!a 假
假 真 真
!b 假
真 假 真
a&&b 真假 Leabharlann 假a||b 真 真 真 假
C语言中,运算量: 逻辑运算结果:
0表示“假”, 非0表示“真” 0表示“假”, 1表示“真” 只能是0或1,不可能是其他数值
C语言课件 第5章
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
5选择结构程序设计
内嵌if 内嵌if
例 输入两数并判断其大小关系
#include <stdio.h> void main() { int x,y; printf("Enter integer x,y:"); 运行:Enter integer x,y:12,23↵ X<Y scanf("%d,%d",&x,&y); Enter integer x,y:12,6↵ if(x!=y) X>Y if(x>y) printf("X>Y\n"); Enter integer x,y:12,12↵ else printf("X<Y\n"); X==Y else printf("X==Y\n"); }
0 2 0
<
>
任务5.2 逻辑运算符和表达式 任务
逻辑运算符
种类: ! (逻辑非) && (逻辑与) || (逻辑或) 逻辑运算真值表 a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a&&b 真 假 假 假 a||b 真 真 真 假
C语言中,运算量:
0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”,
§形式三:else…if结构
#include "stdio.h" void main() { int a,b,c,max; printf("请输入三个整数a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a<b) if(b<c) max=c; else max=b; else if(a<c) max=c; else max=a; printf("%d,%d,%d中最大数为%d\n",a,b,c,max); }
C程序设计(第四版)谭浩强 著 第5章 选择结构程序设计
精品PPT
(2) 第二、第三种形式(xíngshì)的 if 语句中, 在每个else前面有一分号,整个语句结束 处有一分号。
例如:
if (x>0)
printf ("%f",x);
else
各有一个分号
printf("%f",-x);
• C语言提供了三种形式的 if 语句(yǔjù)。
精品PPT
5.3.1 if 语句(yǔjù)的三种 P96 1. 格式1 if (表达式)语句(yǔjù)
功能(gōngnéng):如果表达式为真,则执行 语句 为假,什么也不做。
例如: if (x>y) printf("%d",x); 这种 if 语句的执行过程见 图5.5 (a)。
因为a的值为非0,被认作“真”,对它进行“非” 运算,得“假”,“假”输出0。
(2) 若a=4,b=5,则 a&&b 的值为1。
因为a和b均为非0,被认为是“真”,因此 a&&b的值也为“真”,值为1。
(3) 若a=4,b=5, a||b 的值为1。
(4) 若a=4,b=5, !a||b 的值为1。
• (2) a||b||c • 只要a为真(非0),就不必判断b和c; • 只有a为假,才判别b;a和b都为假才判别c。
精品PPT
*例:如果有下面的逻辑表达式: (m=a>b) && (n=c>d) 当a=1,b=2,c=3,d=4, m和n的原值为1时,
问执行(zhíxíng)完此表达式后, n的值是多少?
第05章 选择结构程序设计
本章讨论
5.2 关系运算符、逻辑运算符、条件运算符
1. 关系运算符和关系表达式 关系运算符
关系运算符 > >= (>和=之间没有空格) < 含 义 大于 大于或等于 这些关系运算符等优 先级,但比下面的优 小于 先级高 左结合性 小于或等于 优先级 结合性
<= (<和=之间没有空格) 注意: (两个=之间没有空格) 等于 这些关系运算符等优 ==C语言用0表示假,非0表示真。 先级,但比上面的优 != (!和=之间没有空格) 不等于 一个关系表达式的值不是0就是1,0表示假,1表示真。 先级低
表达式语句 用 {…}括起来的一组语句。 一般形式为: { [数据说明部分;] #include <stdio.h> 执行语句部分; void main ( ) } { 说明: { (1) 10, y = 20, z; int x = “}”后不加分号 输出结果: int a = 2, b = 3, c; (2) 语法上和单一语句相同 z = 200 c = a + b; (3) z = x + y; 复合语句可嵌套 30 z = printf ("c = %d\n", c); (4) 复合语句内定义的变量只能在复合语句内使 { } 用。 int z; z = x * y; printf ("z = %d\n", z); //输出复合语句中z的值 } printf ("z = %d\n", z); //输出复合语句外z的值 }
例 x?„a‟:„b‟ //x=0,表达式值为‘b‟; x≠0,表达式值为‘a‟ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
第5章 选择结构程序设计
【例5-3】将百分制成绩转换为五分制成绩。转 换标准如下:90分以上为“优秀”,80分以上为 “良”,70分以上为“中”,60分以上为“及 格”,60分以下为“不及格”。程序运行结果如 图5-5左图所示。
图5-5 成绩转换设计
程序运行时,单击【转换】按钮执行的代码如下: private void button1_Click(object sender, System.EventArgs e) { int k =int.Parse(textBox2.Text); if(k>90) textBox1.Text="优"; else if(k>80) textBox1.Text="良";
5.2.2 if…else…if语句 if…else语句也可以用于多种分支的选择结构, 这种情况也就是if语句嵌套结构。 if语句中,内嵌语句可以是复合语句,也就是说, 内嵌语句中可以包含选择语句、循环语句等。那 么,if语句可以嵌套,但应注意if…else的配对问 题。在默认情况下,else语句总是和最近的if语句 配对。下面通过【例5-3】了解if语句的嵌套方法。
第5章 选择结构程序设计
5.1 选择结构程序的设计 在C#中,提供两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单 分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。
5.2 单分支选择结构(if语句) if语句是程序设计中基本的选择语句,它根据 条件表达式的值选择要执行的后面的内嵌语句序 列。一般用于简单选择,即选择项中有一个或两 个分支,语句执行的过程中根据不同的情况进行 选择其中一个分支执行。格式为: if (布尔条件表达式) 内嵌语句序列1; else 内嵌语句序列2;
第五章 选择(分支)结构程序设计.
第五章选择(分支)结构程序设计选择结构是三种基本结构(顺序、选择、循环)之一。
作用是根据所指定的条件是否满足,决定从给定的两组操作选择其中的一种。
C语言中的选择结构是用if语句实现的。
if语句的常用的形式是:if(关系/逻辑表达式)语句1 else 语句2例5-1:用C语言实现图示的分段函数。
数学上描述此分段函数:1, x>0y=其它用C语言描述:if(x>0)y=1;else y=-1;其中:x>0是一个关系表达式,“>”是一个关系运算符。
x>0关系表达式成立,也就是说由关系表达式x>0构成的逻辑运算为真时,y<=1,否则y<=-1。
5、1 关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种,“关系运算”就是“比较运算”。
即,将两个值进行比较,判断是否符合或满足给定的条件。
如果符合或满足给定的条件,则称关系运算的结果为“真”;如果不符合或不满足给定的条件,则称关系运算的结果为“假”。
例5-1中,x>0是比较运算,也就是关系运算,“>”是一种关系运算符。
假如x=4,那么x>0条件满足,就是说关系运算x>0的结果为“真”。
5.1.1 关系运算符及其优先次序C语言提供6种关系运算符:关于优先次序:(1)前4种关系运算符的优先级别相同,后两种也相同。
前4种高于后两种。
(2)关系运算符的优先级低于算术运算符。
(3)关系运算符的优先级高于赋值运算符。
例5-2:c>a+b 等价于c>(a+b);关系运算符的优先级低于算术运算符a>b==c 等价于(a>b)==c ;“>”优先级高于“==”a==b<c 等价于a==(b<c) ;“<”优先级高于“==”a=b>c 等价于a=(b>c) ;关系运算符的优先级高于赋值运算符。
5.1.2 关系表达式用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来所构成的表达式,称为关系表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表 达 式 非0(真) 语句
5.4.1 单分支if语句
例题5.1 输入一个整数,判断这个数是否是偶数。 解题思路: 首先定义一个内存变量x存储整数,然后使用表 达式(x%2==0)判断是否是偶数。
5.4.1 单分支if语句
程序: #include <stdio.h> int main() { int x; scanf("%d",&x); if(x%2==0) printf("%d是一个偶数。\n",x); } 程序运行结果:
5.2 关系运算符和关系表达式
5.2.1 关系运算符
算术运算符 高 <、<=、>、>= ==、!= 赋值运算符号 低
图5.1 关系运算符的优先级
5.2.2 关系表达式
用关系运算符把两个表达式连接起来的式 子称为关系表达式。例如: a<b,a+2>b+2,a+b>c+d,’A’>’B’, c=5>d=3,(a>b)>(c<d) 关系表达式的值也是一个逻辑值,即“真” 和“假”。由于在C语言中没有逻辑型数据, 所以用“1”代表“真”,用“0”代表“假”。
95 A 88 B 73 C 66 D 35 E
多分支条件语句
5.4.3 多分支if 语句
例题5.3 计算分段函数的值。
2 * x 2 / x y 2 x 2 x
x 10 10 x 0 0 x 10 x 10
解题思路: 首先定义一个内存变量x,输入x的值 后判断x的范围,然后根据分段函数计算 函数值。
多分支if语句首先判断表达式1的值,如果表达 式的值为真,则执行语句1,后面的语句再不执 行;如果表达式的值为假,则再判断表达式2的 值。如果表达式2的值为真,则执行语句2,后面 的语句再不执行;如果表达式2的值为假,则继 续判断表达式3的值。以此类推找到成立的条件 然后执行对应的语句。
5.4.3 多分支if 语句
5.4.3 多分支if 语句
程序: #include <stdio.h> int main() { float x,y; printf("请输入x的值:"); scanf("%f",&x); if(x<=-10) y=2*x; else if(x>-10&&x<=0) y=2/x; else if(x>0&&x<=10) y=2+x; else if(x>10) printf("y=%f\n",y); }
第5章 选择结构程序设计
本章重点: if语句;if„else语句;switch语句。 本章难点: 选择结构的嵌套。
5.1 为什么需要选择结构 5.2 关系运算符和关系表达式 5.3 逻辑运算符和逻辑表达式 5.4 用if语句实现选择结构 5.5 用switch语句实现选择结构 5.6 选择结构的嵌套 5.7 选择结构程序设计综合举例 5.8 本章小结
例子:
#include<stdio.h> int main() {double score; scanf("%lf",&score); if(score>=60) printf("OK\n"); else printf("Failed\n"); return 0; }
/* 86 OK */ /* 59 Failed */
例子:
#include<stdio.h> int main() {int i,m,n,res; for(i=1;i<=5;i++) {scanf("%d%d",&m,&n); res=m%n; printf("res=%d\n\n",res ); } return 0; }
/* 45 res=4
54 res=1
5.3 逻辑运算符和逻辑表达式
2. 逻辑与 逻辑与是二元运算,其运算符为“&&”。运算规 则:若参与逻辑与运算的两个操作数的值均为1 (逻辑真),则逻辑与的运算结果为1(逻辑真); 若参与逻辑与运算的两个操作数的值中有一个为0 (逻辑假),则逻辑与的运算结果为0(逻辑假)。 例如: int a=1,b=5; a&&b 运算结果为1,因为a和b的值均为逻辑真; (a>b)&&(a>0) 运算结果为0,因为a>b的运算结 果是逻辑假。
5.3 逻辑运算符和逻辑表达式
3. 逻辑或 逻辑或是二元运算,其运算符为“||”。运算规则: 若参与逻辑与运算的两个操作数的值均为0(逻辑 假),则逻辑与的运算结果为0(逻辑假);若参与 逻辑与运算的两个操作数的值中有一个为1(逻辑 真),则逻辑与的运算结果为1(逻辑真)。例如: int a=1,b=5; a||b 运算结果为1,因为a的值为逻辑真; (a>b)||(a>0) 运算结果为1,因为a>0的运算结果 是逻辑真。
5.3.2 逻辑表达式
“!” 高 算术运算 关系运算 “&&”和“||” 赋值运算 低
图5.2 运算符的优先级
5.4 用if语句实现选择结构
5.4.1 单分支if语句
0(假)
单分支if语句的形式为: if (表达式) 语句 单分支if语句首先判断表达式的值,如果 表达式的值为真,则执行后面的语句;如 果表达式的值为假,则不执行后面的语句。 这里的语句可以是一条简单的语句,也可 以是一条复合语句。
5.5 用switch语句实现选择结构
说明: 1. switch语句是多分支选择语句,其特点是可以根据一个表 达式的多种值,选择多个分支。虽然也可以用多分支的if语句 或嵌套的if语句实现,但如果分支较多,则会导致多分支if语句 和嵌套的if语句层次多,程序冗长且可读性降低。 2. switch后面的表达式的值可以是整型、字符型、枚举型等。 常量表达式的值必须互不相同,当表达式的值与某一个case后 面的常量表达式的值相同时,就执行该case后面的语句。如果 没有任何一个case后面的常量表达式的值与其相匹配时,则执 行default后面的语句。 3. 在执行switch语句时,根据表达式的值找到入口,也即对 应的case,执行完成对应的语句后,程序继续执行下一个case, 而不再继续判断。 4. 执行完一个case以后,如果要终止switch语句的执行,可以 用break语句来实现。
5.5 用switch语句实现选择结构
例题5.4输入考试成绩(百分制)打印出其对应的 等级。 小于60:不及格 大于等于60,且小于70 : 及格 大于等于70,且小于80 : 中等 大于等于80,且小于90 : 良好 大于等于90,且小于等于100:优秀 解题思路:首先要设计好switch后面的表达式, 因为考试成绩为0-100的实数,如果把每一个值都 用一个case列出来,那是不可能实现的。所以可以 把0-100的实数划分成0~60、60~70、70~80、 80~90、90~100、100进行处理。
5.5 用switch语句实现选择结构
程序: #include <stdio.h> int main() { float score; printf("请输入学生成绩:"); scanf("%f",&score); switch((int)(score/10)) { case 10: case 9:printf("优秀\n");break; case 8:printf("良好\n");break; case 7:printf("中等\n");break; case 6:printf("及格\n");break; case 5: case 4: case 3: case 2: case 1: case 0:printf("不及格\n");break; default:printf("输入有误!\n"); } }
5.3 逻辑运算符和逻辑表达式
1. 逻辑非 逻辑非是一元运算,其运算符为“!”。运算规则:若逻 辑非运算符后面的操作数的值为0(逻辑假),则逻辑非 的运算结果为1(逻辑真);若逻辑非运算符后面的操作 数的值为1(逻辑真),则逻辑非的运算结果为0(逻辑 假)。在C语言中进行逻辑判断时,数据的值为非0,则 认为是逻辑真;数据的值为0,则认为是逻辑假。例如: int a=1,b=5; !b 运算结果为0,因为b是非0值表示逻辑真,再进 行逻辑非运算后结果为0; !(a>b) 运算结果为1,因为a>b的运算结果是逻辑假, 再进行逻辑非运算后结果为真。
5.1 为什么需要选择结构
在前面介绍的顺序结构中,程序中的每条语句是 按照各个语句的先后顺序依次执行的,执行完一 条语句后再无条件地执行下一条语句,这就是顺 序结构。但在现实生活中,有许多问题用顺序结 构是无法解决的,需要用到选择结构。也就是说 执行完一条语句后不是无条件地执行下一条语句, 而是需要进行选择,要选择就需要条件的判断。 现实生活中很多问题都需要进行条件的判断
0(假) 表达式 1 0(假) 非 0 (真) 表达式 2 0(假) 非 0 (真) 表达式 3 非 0 (真) 表达式 4 非 0 (真) 0(假)
语句1
语句2
语句3
语句4
语句5
例子:
#include<stdio.h> int main() {double score; scanf("%lf",&score); if(score>=90) printf("A\n"); else if(score>=80) printf("B\n"); else if(score>=70) printf("C\n"); else if(score>=60) printf("D\n"); else printf("E\n")s=2 -11 3 res=-2 */