C语言04选择结构.ppt

合集下载

C语言程序设计第4章选择结构程序设计ppt课件

C语言程序设计第4章选择结构程序设计ppt课件

8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。

C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版

C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计

《c语言选择结构》课件

《c语言选择结构》课件

常见错误和调试技巧
1 常见的语法错误
列举一些学习者常犯的语法错误,并给出如何避免和纠正这些错误的技巧。
2 程序调试技巧
分享一些调试C语言程序的实用技巧,以帮助大家更快地找到和修复错误。
总结和练习答疑
总结本PPT课件的主要内容,并回答学习者对选择结构的问题。鼓励学习者进行练习,并提供支持和答疑。
3
应用场景三
通过一个编程实例,让大家进一步理解和应用选择结构。
优缺点与联系
if-else语句和switch语句的联系
展示if-else语句和switch语句之间的联系和相互转换的方法。
选择结构的优点
总结选择结构的优点,包括简化代码和提高程序可读性。
选择结构的缺点
讨论选择结构的一些潜在缺点,以及如何避免常见的问题。
深入理解
if语句的嵌套和if-else 语句的区别
解释嵌套if语句和if-else语句之 间的区别,并给出何时使用它 们的建议。
case标签的取值类型
展示case标签可以使用的取值 类型,并讨论它们的使用限制 和最佳实践。
关键字的使用注意事 项
提供一些关键字使用的注意事 项,以避免常见的语法错误。
流程图
使用流程图来可视化选择结构的 执行流程。
条件语句
if语句
if语句是最简单的条件语句,用于根据条件的真假执行相应的代码块。
if-else语句
if-else语句允许我们在条件为假时执行另一段代码块。
if-else if-else语句
if-else if-else语句允许我们在多个条件之间进行选择。
《c语言选择结构》PPT课 件
在这个PPT课件中,我们将深入探讨C语言的选择结构,包括条件语句、if语句、 switch语句等,帮助大家更好地理解和运用这些结构。

c语言 第四章 选择结构课件

c语言 第四章 选择结构课件

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 ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)

第4章选择结构PPT教学课件

第4章选择结构PPT教学课件

注意:1)A或B都可以是单一语句,也可以是复合语句;
2)else部分不能独立存在。
即else前一定有一个“;”,它必定是if语句的一 部分
2020/12/10
11
注意:在C语言中,表达式e的值为非0时, 系统均按“真值”处理。 如:if (‘a’) printf (“O. K. ”); x = -5; if (x) printf (“O. K. ”); y = 0; if (y==0) printf (“O. K. ”); if (y) printf (“O. K. ”);
( 1 && 1) | | (0 < 2) =1
2020/12/10
6
★ 注意(短路现象)
与运算中,如果第一个表达式=0,则后面的 表达式则不再计算。
例:设a=0,b=10 a++ && b++ 之后,b=10
或运算中,如果第一个表达式=1,则后面的 表达式则不再计算。
例:设a=1,b=10 a++ || b++ 之后,b=10
!a || a>b
(!a) || (a>b)
5>3 && 2 || !8 < 4-2
((5>3) && 2) || ( (!8) < (4-2))
5
逻辑量:当一个量(可以是基本类型的常量或 变量)用作判断时,C编译系统认为:非0—— 真、0——假
逻辑表达式:用逻辑运算符将关系表达式或逻 辑量连接起来有意义的式子 (单个逻辑量、关系表达式是逻辑表达式的特 例)
2020/12/10
7
练习题:

C语言第四章选择结构ppt课件

C语言第四章选择结构ppt课件
/* 定义实型变量 x , y */
/* 求 x 的绝对值并赋给 y */
/* 输入 x 的值 */
/* 输出 x 的绝对值 */
/* 编译预处理:包含头文件 */
二、if ... else 语句
对这一句话“如果x>=0则y=x,如果x<0则y=-x”,可以写出以下语句:
表达式1 ? 表达式2 :表达式3
表达式1为真,结果为表达式2的值 表达式为假,结果为表达式3的结果; 运算符 “ ?:”的优先级只在逗号和赋值运算 符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n )
if ( 表达式1 ) if ( 表达式2 ) 语句1; else 语句2;else if ( 表达式3 ) 语句3; else 语句4;
实现if ~ else 正确配对方法:加{ }
五、条件运算符
能否把两条语句合成一句,更好地体现这种逻辑关系呢?这就是 if ...... else 语句的功能。
简单的if 语句只能表达“如果 ,那么 ”的含义,而if ...... else 语句却能表达“如果 那么 否则 ”的含义。
If ( x>=0) y=x;if (x<0) y=-x;
a>b?a:c>d?c:d
a>b?a:(c>d?c:d)
表达式值为15,n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。

C语言选择结构ppt课件

C语言选择结构ppt课件
C语言
必修 -----
1
第四章 选择结构 1、定义:从main函数开始,由上往下有些语句执行有些语句不执行 2、两类语句→执行语句:控制语句
2
第四章 选择结构 1、两类表达式 2、if()……else…… 3、switch(){……} 4、例题分析
3
第四章 选择结构
1、两类表达式
(1)关系运算符及关系表达式
8
第四章 选择结构
2、if语句(三种格式)
格式2:
例题
if(表达式)
main()
语句序列1;
{ int m=5;
else
if(m++>5)
语句序列2;
printf("m=%d",m};
else
printf("m=%d",m++);
printf("m=%d",++m);
}
9
第四章 选择结构
2、if语句(三种格式)
< <= > >= == !=
三要素:功能 优先级 结合性
例题:
4>5
5>4>3
5!=4
4>=3
5==5
7=7
4
第四章 选择结构 1、两类表达式 (2)逻辑运算符及逻辑表达式 && (11级) 丨丨(12级) ! ①在C语言中逻辑表达式的值只有1或0两种值。其中,1表示“真”,0表示 “假”。
5
第四章 选择结构
格式3:
例题:
if语句的嵌套:
int x;
if(表达式1)
scanf"%d'',&x);
if(表达式2)

C语言-04-嵌套选择结构ppt课件

C语言-04-嵌套选择结构ppt课件

case ‘a’:printf(“90—100\n”);break;
grade(a,b,c,d,e):\n”); case ‘b’:printf(“80—90\n”);break;
scanf(“%c”,&grade); case ‘c’:printf(“70—80\n”);break;
case ‘d’:printf(“60—70\n”);break;
printf( “Today is Monday!”);
else if (i= =2)
printf( “Today is Tuesday!”);
else if (i= =3)
printf( “Today is Wednesday !”);
else if (i= =4)
printf( “Today is Thursday!”);
}
2
if嵌套举例
#include<stdio.h>
main( )
{ int x,y;
scanf(“%d %d”,&x,&y);
if(x>0)
{ if(y>0)printf(“ 1”);
else printf(“ -1”);
}
else printf(“ 0”,);
}
完整最新ppt
3
4.2.2 if … else if结构
(5) 执行完一个case语句块后,流程转到下一个 case语句继续执行
(6) 在执行过程中碰到break语句,程序退出switch 结构
完整最新ppt
8
例、根据学生成绩的等级打印gt;
main( )
switch(grade)
{ char grade;

C语言程序课件ppt-第4章选择结构

C语言程序课件ppt-第4章选择结构

void main( ) {
int score;
printf("input a score:");
scanf("%d",&score);
switch(score/10) {
case 10:
case 9: printf("优秀\n");break;
case 8: printf("良好\n");break;
(2)||
(逻辑或) 相当于其他语言中的OR
(3)!
(逻辑非) 相当于其他语言中的NOT
例:a&&b 若a,b为真,则a&&b为真。
a||b 若a,b之一为真,则a||b为真。
优!先a次序:若a为真,则!a为假。 !(非)->&&()->||() 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算 术运算符
ch=ch+32; printf("%c\n",ch); } }
4.3.2 双分支if语句
双分支if语句的基本格式为: if(表达式)
语句块1; else
语句块2;
注意:⑴ 语句块1或语句块2都可以是单一语句,也可以是 复合语句;else部分不能独立存在,即else之前一定有 一个“;”号,它必须是if语句的一部分。
2.逻辑表达式
•用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式。 •逻辑表达式的值应该是一个逻辑量“真”或“假”。
例:设a=4,b=5: !a的值为0 a||b的值为1 4&&0||2的值为1
任何非零的数值被认作“真”

第四章C语言选择结构PPT课件

第四章C语言选择结构PPT课件
( 课次 1,课时 3 )
2008-04-18
1
1、关系运算和逻辑运算
2、if语句构成的选择结构
3、条件表达式构成的选择结构
4、switch语句以及用switch语句和
break语句构成的选择结构
2008-04-18
2
➢ C语言中的逻辑值:用非零值来表示“真”, 用零表示“假”。
➢ 关系运算符:
else子句的if语句 : 语句:
if(表达式1)
if(表达式1)
if(表达式2)
{ if(表达式2) 语句1}
语句1
else
else
语句2
语句2 注意:在if子句中的一对花括号不可
else
缺少.因为c语言语法规定:else子
语句3
句总是与前面最近的不带else的if相
结合,与书写格式无关.
2008-04-18
main()
{ int x,y;
printf(“Enter x &y:\n”);
scanf(“%d %d”,&x,&y);
printf(“x,y:%d %d\n”,x,y);
if(x>y)printf(“x=%d\n”,x);
if(y>x)printf(“y=%d\n”,y);
if(x==y)printf(“x==y =%d\n”,x);
}
2008-04-18
8
➢ 例2、输入三个整数,分别放在变量a、b、c中,程序把输入的 数据重新按由小到大的顺序放在变量a、b、c中,最后输出a、b、 c中的值。
main()
{ int a,b,c,t;
printf(“input a,b,c: “);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
C Programming Language
10 10
-10 2
,z;执行语句z=x>y?++x:y++;后,x、 y、z的值分别为____、____和 ____ 。
2. 已知int a=4,b=5,c;执行语句c=a=a>b后,a的值为 ____ 。
3. 已知int x=10,y=3 , z;执行语句printf("%d\n" , z = (x%y , x/y));后,输出结果为 ____ 。
种类:< <= = = >= > != 结合方向:自左向右 优先级别:
< <= 优先级6 > (高)
>=
== 优先级7 != (低)
关系表达式的值:是逻辑值“真”或“假”,
用1和0表示
例 int a=3,b=2,c=1,d,f;
a>b
(a>b)==c
b+c<a
3
C Programming Language
已知a=1,b=2,c=3
逻辑运算规则简化:
⑴、两个表达式作&&,只要一个的值为0, 不必计算另一个,该表达式的值为0。 例:int a=0,b=2;a && (b+=b)
⑵、两个表达式作 || ,只要一个的值非0, 不必计算另一个,该表达式的值为1。 例:int a=5,b=2; a || (b+=b) 例:a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d) m=?0 ,n=?1
|| (12)
! :从右向左 && :从左向右 || :从左向右
! 算术 关系 逻辑 赋值
① a+b>c&&b==c ② a||b+c&&b-c ③ !(a>b)&&!c||1 ④ !(x=a)&&(y=b)&&0 ⑤ !(a+b)+c-1&&b+c/2
6
C Programming Language
d=a>b f=a>b>c
关系运算注意:
例 若a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0
例 5>2>7>8在C中是允许的, 值为 0
例 int i=1, j=7,a; a=i+(j%4!=0);
则a= 2
例 ‘a’>0
结果为
1
‘A’>100 结果为
0
例 应避免对实数作相等或不等的判断
9. “20<x<30或x<-100”的C语言表达式是____。
4. 已知char ch='A‘;ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值为 ____。
5. 已知w=1,x=2,y=3,z=4;则表达式5+w>x?w:y<z?y:z; 的值为 ____。
6. 执行printf(“%d”,(a=2&&(b=-2)));语句后,输出结果 为____。
较高的类型
9
C Programming Language
课堂练习
1.判断一个点是否
-10
落入圆形中。 x*x+y*y<=100
2.判断一个点是否落 入阴影部分。
(小圆的半径为1)
(pow(x-2,2)+pow(y-2,2))<=1|| -2 (pow(x-2,2)+pow(y+2,2))<=1|| (pow(x+2,2)+pow(y-2,2))<=1|| (pow(x+2,2)+pow(y+2,2))<=1
如 1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6
4
C Programming Language
逻辑运算符和表达式
逻辑运算符
种类: ! && || 逻辑运算真值表(见教材) (逻辑运算--->产生真假值的运算)
C语言中,
运算量: 0表示“假” 非0表示“真”,
11
C Programming Language
7. 已知int x=15,y=5; 执行语句printf(“%d\n”,x%=(y%=2)); 后,输出结果为____。
8. int a=3,b=4,c=5;则值为0的表达式是()
A) ‘a’&&‘b’
B) a<=b
C) a||b+c&&b-c
D) !((a<b)&&!c||1)
变换一下角度,如何判断year不是闰年?
(year%4!=0)||(year%100==0 && year % 400 !=0)
8
C Programming Language
条件运算符与表达式
一般形式: expr1 ? expr2 : expr3 功能:相当于条件语句,但不能取代一般if语句
条例件(运a=算=b符)?可’Y嵌’:套’N’
运算结果: 0表示“假”, 1表示“真”,
5
C Programming Language
若a=4,!a的值为__ 若a=4,b=5, 则a && b 的值为__ 则a || b 的值为__ 则!a || b 的值为__ 4 && 0||2 的值为__
优先级: 结合方向:
! (2) 高
&& (11) 低
如(xx%>02?==11:()x?<10:0?-1:0)
非0 expr1 0
例 优先(级x>:=10)3?x:-x
x?结‘a合’:‘(b方c’>向=‘/:a/x’自=&0右&,表向c达<左=式‘z值’)?为c-’‘取a’eb+x’’p;Ar’2x:值c‡0,表达取式e值xp为r3值
‘a’如 a>b?a:c>d?c:d a>b?a:(c>d?c:d) x>eyx?p1r:11、.5ex/p/xr>2y、,e值xp为r31类.0;型x可<不y 同,值,为表1.达5 式值取
7
C Programming Language
例:判断某一年是否是闰年。条件是 ① 能被4整除,但不能被100整除 ② 或能被400整除。 用year表示年份,判断闰年的逻辑表达式为:
(year%4==0 && year%100!=0)||(year % 400==0)
如果给year输入一个的值,使上面的表达式的值为1 时,则year所代表的年份就是闰年。
C 语言程序设计 Lecture 4
选择结构程序设计
C Programming Language
关系运算符和关系表达式《 逻辑运算符和逻辑表达式《
条件运算符和条件表达式《
if语句《
switch语句《
goto语句《
选择结构程序示例《
2
C Programming Language
关系运算符和表达式
关系运算符
相关文档
最新文档