第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
• !((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语言讲义)PPT教学课件

case ‘B’:
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
第5讲 程序的基本结构共57页

机械工业出版社
15
第5章 程序的基本结构
5.2.1 If语句
多分支结构If语句的功能是: 首先判断<条件表达式1>,如果<条件表达式1>的值
为True,则执行其后的语句块,之后转去执行End If 下面的语句。 如果<条件表达式1>的值为False,则判断<条件表达 式2>的值是否为True,若为True,则执行其后的语 句块,然后转去执行End If下面的语句,否则继续依 次向下判断。 如果所列出的前n个<条件表达式>的值都为False,再 看是否存在Else子句,若存在则执行Else子句后面的 语句块,若不存在,则直接执行End If下面的语句。
29.05.2020
机械工业出版社
12
第5章 程序的基本结构
5.2.1 If语句
程序代码如下:
Private Sub Form_Click() Dim x!, y! x = Val(InputBox("Input x")) If x >= 0 Then
y = (1 - x) ^ 2 Else
y=x^2-1
29.05.2020
机械工业出版社
8
条件表达式的值为真吗? 否 是
语句块
图5-2 单分支结构
第5章 程序的基本结构
5.2.1 If语句
【例5-2】设口令。用If语句来判断输入密码的正确性。 程序代码如下:
Private Sub Form_Click() Dim a As String, b As String a = "123456" b = InputBox("输入你的密码:", "输入密码对话框") If b = a Then
C语言第五章

T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
C语言课件 第5章

如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第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章 选择结构程序设计
/*程序 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
第五章 选择结构
printf("%d,%d",a,b);
A) 6,1 B) 2,lC) 6,0 D) 2,0
22.下面程序段执行后x的值为______________。
inta=14,b=15,x;char c='A';
x=(a&&b) && (c<'B');
printf("%d",x);
A) 0 B)1C) 14D) 15
44.若a=1,b=3,c=5,d=4,则执行下面程序段后x的值是______________
if(a<b)
if (c<d)x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B)2C) 3 D) 4
45.在下面的条件语句中(其中S1和S2表示C语言语句),只有_____________在功能上与其他三个语句不等价。
A) 4 B)3 C) 2 D) l
25.若有inti=5;j=4,k=6; float f;执行语句f=(i<j && i<k)?i:(j<k)?j:k;后f的值为___________。
A) 4.0 B)5.0 C)6.0 D) 7.0
26.若定义了intx=100;则表达式x++>100?x+20:x+10的值为___________。
A) 1B)2 C) 3 D) 4
29.下面程序段执行后的输出结果是____________。
int a,b,c;int x=5,y=l0;
A) 6,1 B) 2,lC) 6,0 D) 2,0
22.下面程序段执行后x的值为______________。
inta=14,b=15,x;char c='A';
x=(a&&b) && (c<'B');
printf("%d",x);
A) 0 B)1C) 14D) 15
44.若a=1,b=3,c=5,d=4,则执行下面程序段后x的值是______________
if(a<b)
if (c<d)x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B)2C) 3 D) 4
45.在下面的条件语句中(其中S1和S2表示C语言语句),只有_____________在功能上与其他三个语句不等价。
A) 4 B)3 C) 2 D) l
25.若有inti=5;j=4,k=6; float f;执行语句f=(i<j && i<k)?i:(j<k)?j:k;后f的值为___________。
A) 4.0 B)5.0 C)6.0 D) 7.0
26.若定义了intx=100;则表达式x++>100?x+20:x+10的值为___________。
A) 1B)2 C) 3 D) 4
29.下面程序段执行后的输出结果是____________。
int a,b,c;int x=5,y=l0;
第5章 程序控制语句
5.3.2 while循环 循环
while循环的功能和for循环的功能相同,可以将while循环看 作是for循环的简化版本,也是一个循环语句。while循环 的基本格式如下。 while (可返回布尔类型表达式) { 相关执行语句; } 如果可返回布尔类型表达式的值是“true”,则会执行相关的 执行语句,并且会重新来判断该表达式的值,如果值仍为 “true”,则重新执行相关的语句。一直循环执行到表达 式的值为“false结构,语句可以按照出现的 顺序来执行,其中没有跳转或者判断,执行到程序的结束 为止。
5.2 条件语句
选择结构也是分支结构,其中包括条件判断语句。可以根据 一个判断表达式的结果来选择不同的分支执行语句,可以 根据不同的条件来执行不同的动作。条件判断语句包括if 语句和switch语句。
5.2.1 If语句 语句
有时候,我们对待一个事情,总是想,如果事情向这个方向发 展的话,我们该怎么做,如果向另一个方向发展,我们又 该则怎么去做。在程序中,也有这样的语句。就是if语句。 用于判断条件。 if语句是最简单的条件判断语句。if语句的基本语法格式如下。 if(布尔表达式){ //语句1 } //语句2
5.3 循环语句
高中的时候,为了学习英语,同学们会买一个复读机,用于 反复的读一段文字或者是一个单词。在程序中,有时候也 需要对某一段代码进行反复的操作,这时就需要使用到循 环语句。其中包括有for循环的while循环。
5.3.1 For循环 循环
循环语句可以使计算机重复的执行某一段代码,同时也可以 通过指定的终止条件来控制程序的无线循环。For循环时 最常用的一个循环语句,其语法如下。 For(表达式1;可返回布尔值的表达式;表达式2){ //相关语句 }
第五章选择结构程序设计练习含答案v1
第五章选择结构程序设计5.1选择题【题 5.4 】能正确表示“当x 的取值在[ 1, 10]和[ 200, 210]范围内为真,否则为假”的表达式是。
CA) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1)||(x<=10)||(x>=200)||(x<=210)C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D) (x>=1)||(x<=10)&&(x>=200)||(x<=210)【题 5.5 】表示图中坐标轴上阴影部分的正确表达式是。
C////////////////Xa b cA) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)||(b<=x<=c)C) (x<=a)||(x>=b)&&(x<=c)D) (x<=a)&&(b<=x<=c)【题 5.6 】判断 char 型变量 ch 是否为大写字母的正确表达式是。
CA)‘ A’ <=ch<=‘ Z’B) (ch>= ‘ A’ )&(ch<= ‘Z’ )C) (ch>= ‘ A’ )&&(ch<= ‘ Z’ )D) ( ‘A’ <=ch)AND(‘ Z’>=ch)【题 5.10 】设有: int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d) 后 n 的值为。
BA)1B)2C)3D)4【题 5.11 】判断 char 型变量 c1 是否为小写字母的正确表达式是。
北京航空航天大学C语言c第三讲(第五章) 选择结构程序设计
if (money>=500) cost=0.8; else if (money>=300) cost=0.85; else if (money>=100) cost=0.9 else if (money>=50) cost=0.95; else cost=1.0; price=money*cost;
高 低
3,优先级 <,<=,>,>= 为同一级别,== 和!= 为同一级别. 在同一级别中,采取由左至右的结合方向.
算术运算符 -> 关系运算符 -> 赋值运算符
4,关系表达式
用关系运算符将两个表达式连接起来叫关 系表达式。 例:关系运算的优先级举例
c>a+b a>b!=c a==b<c a=b>c
if (表达式) 语句1 else 语句2
说明: (1)表达式是指关系表达式或逻辑表达式,条
件满足指的是表达式的值为真,即表达式的 值是一个非0值。 例如: if (3) printf(“O.K”); 输出O.K(永真) if („a‟) printf(“%d”,„a‟); 输出97 (永真) if (0) printf(“false”); 不执行printf语句(永假)
能被4整除,但不能被100整除; 能被400整除。
用year表示年份,判断闰年的逻辑表达式为: (year%4==0 && year%100 != 0)||(year % 400 ==0)
如果给year输入一个的值,使上面的表达式的值为1
时,则year所代表的年份就是闰年。
• 课堂练习: 写出逻辑表达式。 10 1. 判断一个点是否 10 -10 落入圆形中 2. 求落入阴影部 -10 分的任意一点 x*x+y*y<=100 (小园的半径为1.)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计(公共基础)
信息与电气工程学院
•
•
•
逻辑运算符用于对逻辑对象进行运算。 C 语言有三种逻辑运算符(运算规律见下页): && 逻辑与 || 逻辑或 ! 逻辑非(单目运算)
• •
逻辑运算与其它运算的关系: 逻辑运算的运算对象必须具有真假值(逻辑值),而关 系运算的运算对象都需要相同类型。 ! 运算具有最高级,|| 运算具有最低级,通过括号可改变 优先级。|| 和&& 低于关系运算级别,!高于算术运算级 C语言程序设计(公共基础)
C语言程序设计(公共基础)
信息与电气工程学院
格式之三: if(表达式1) else if(表达式2) else if(表达式3) … else if(表达式m) else
语句1 语句2 语句3 语句m 语句n
流程图表示:
C语言程序设计(公共基础)
信息与电气工程学院
三种基本格式: (1) if (表达式) 语句1; (2) if (表达式) 语句2; else 语句3; (3) if (表达式) 语句4; else if (表达式) 语句5; else 语句6; *格式(1)-(3) ,在其中的语句1-6部分还可以嵌入 格式(1)-(3)的 if 语句。 * if语句是一个语句,即格式(1)、 (2)、(3)每个都 是一个语句。注意;的位置。
信息与电气工程学院
举例,下面的表达式都是逻辑表达式: (x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0), (year%4==0)&&(year%100!=0)||(year%400==0) 说明:在计算逻辑表达式时,并不是所有的表达式都被求 解。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为“假”, 系统不再判定或求解第二操作数。 2)对于逻辑或运算,如果第一个操作数被判定为“真”, 系统不再判定或求解第二操作数。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、 1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值 变为0,而y的值不变,仍等于1! C语言程序设计(公共基础)
信息与电气工程学院
[例] 从键盘上输入一个字符,如果它是大写字 母,则把它转换成小写字母输出;否则,直接输出。 main() { char ch; printf("Input a character: "); scanf("%c",&ch); ch=(ch>='A' && ch<='Z') ? (ch+32) : ch; printf("ch=%c\n",ch); }
C语言程序设计(公共基础)
信息与电气工程学院
1)max=a>b?a∶b 等效于 max=(a>b)?a∶b 2)a>b?a∶b+1 等效于 a>b?a∶(b+1) 3)a=1,b=2,c=3,d=4, a>b?a∶c>d?c∶d 等效于 a>b?a∶(c>d?c∶d),值等 于4
C语言程序设计(公共基础)
信息与电气工程学院
单元5: 分支 / 选择结构程序设计
C语言程序设计(公共基础)
信息与电气工程学院
•
在C语言中,表示条件一般用关系表 达式或逻辑表达式 实现选择结构用if语句或switch语句。
•
C语言程序设计(公共基础)
信息与电气工程学院
关系运算实际上是比较运算,其结果为逻辑值,或者为 真值,或者为假值。在 C语言上,假值用0表示,非0都 为真; • 关系运算符有6种: <, <=, >, >=, ==, != • 运算总有优先级,具体如下: 前4种(<, <=, >, >=)相同,后两种相同,前4种的优 先级高于后两种; 关系运算的优先级低于算术运算,但高于赋值运算 结合方向:自左至右
main() {int score, grade; printf(“Input a score(0~100): ”); scanf(“%d”, &score); grade = score/10; /*将成绩整除10,转化成switch语句中的case标号*/ switch (grade) {case 10: case 9: printf(“grade=A\n”); break; case 8: printf("grade=B\n"); break; case 7: printf("grade=C\n"); break; case 6: printf("grade=D\n"); break; case 5: case 4: 思考:如果去掉程序中的所有 case 3: break语句,且输入的成绩为75, case 2: 输出会如何? case 1: case 0: printf(“grade=E\n”); break; default: printf(“The score is out of range!\n”); } C语言程序设计(公共基础)
C语言程序设计(公共基础)
信息与电气工程学院
-1(x<0) 例:有一个函数 y= 0 (x=0), 编一程序,输入一 个x值,输出y值。 1 (x>0)
#include<stdio.h> int main() { int x,y; scanf(“%d”,&x); { 程序段 } printf(“x=%d,y=%d\n”,x,y); return 0; } C语言程序设计(公共基础)
C语言程序设计(公共基础)
信息与电气工程学院
格式之二: if (表达式) 语句1 else 语句2
流程图表示:
C语言程序设计(公共基础)
信息与电气工程学院
计算 x 和 y 之间的最大值,存入 z; if ( x<y) z=y; else z=x; printf(“max(%d,%d)=%d”,x,y,z);
C语言程序设计(公共基础)
信息与电气工程学院
if ( ) if ( ) 语句1 else 语句2 else if ( ) if ( ) 语句3 else 语句4 else if ( ) 语句3 else 语句4
注意: 1)多个嵌套的结果, else存在匹配的问题: else总是与最近的尚未 匹配的 if 匹配。 2)格式化问题:同一 级的 if-else都向左缩进 一定的空格。
C语言程序设计(公共基础)
C语言程序设计(公共基础)
信息与电气工程学院
例:输入两个数,并输出较大值
#include <stdio.h> int main() { int a,b,c; scanf("%d,%d",&a,&b); if (a>b) { c=a;} else {c=b; } printf("%d\n", c); return 0; } C语言程序设计(公共基础)
•
C语言程序设计(公共基础)
信息与电气工程学院
定义:
由关系运算符将两个可作比较运算的表达式联 结起来所得到的式子称为关系表达式。 例子 a=3, b=2, c=1 则 c>a+b a>b== c a==b<c a=b>c f=a>b>c
等效于 c>(a+b) 等效于(a>b)==c 等效于a==(b<c) 等效于a=(b>c) 等效于a=(a>b>c)
C语言程序设计(公共基础)
信息与电气工程学院
格式: switch(表达式) { case 常量表达式1: 语句1; case 常量表达式2: 语句2; …… case 常量表达式n: 语句n; default 语句n+1; }
C语言程序设计(公共基础)
信息与电气工程学院
C语言程序设计(公共基础)
信息与电气工程学院
SWITCH 内的表达式可以为任意类型 CASE 后的表达式的类型与SWITCH 内的表达式类型一致 当SWITCH 内的表达式的值与某个 CASE 中的表达式值相同时, 执行其后的语句;都不相同时,执行 DEFAULT; CASE 和 DEFAULT 的顺序是无关紧要的 在每种case 语句后最好有 break终止,否则,将执行下面case 对应的语句。 switch与if不同,只能测试相等,不能像 if 作关系比较,如大 于小于之类; 多个case可以共用一组执行语句
信息与电气工程学院
条件运算符是三目运算符; 格式为: 表达式1?表达式2:表达式3 意义:
C语言程序设计(公共基础)
信息与电气工程学院
先求表达式1,如果满足,则计算表达式2;否则,计算表 达式3; 条件运算优于赋值运算,但低于关系运算符和算术运算符。 其结合性为“从右到左”(即右结合性)。 条件表达式不能完全取代条件语句,如: if(a>b) printf(“%d”, a); else printf(“%d”, b); 但可以取代为: printf(“%d”,(a>b)?a:b); 条件表达式的结果类型由表达式2和表达式3的类型共同决 定(取上界——如,一者为整形,一者为实型,则取实 型);
信息与电气工程学院
If 语句+复合语句
#include <stdio.h> int main() { int x,y; scanf(“%d”,&x); if (x<0 ) { y=-1; printf(“x=%d,y=%d\n”,x,y); } return 0; }