第5章 选择结构程序设计

更新时间:2023-07-29 20:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言课件

第五章 选择结构程序设计

C语言课件

本章主要内容

5.1 关系运算符和关系表达式

5.2 逻辑运算符和逻辑表达式5.3 if语句

5.4 switch语句5.5 程序举例

C语言课件

§5.1 关系运算符和关系表达式

关系运算:对两个量进行“比较运算”

一、关系运算符及其优先次序关系运算符 优先级 运算对象个数< 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 6

结合性

2(双目运算符) 左结合性 (自左至右)

7

!= 不等于

C语言课件

算术运算符、赋值运算符、逗号运算符、关系运 算符的优先级由高到低的次序为: 例如: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语言课件

二、关系表达式

算术表达式、关系表达式、 逻辑表达式、赋值表达式、 逗号表达式

1. 关系表达式:用关系运算符将两个操作对象( 常量、变量或表达式)连接起来的式子。

例: a>b 'a'<'b'

a+b>b+c(a>b)>(b<c)

(a=3)>(b=5)

说明:数值量比较是比较数字的大小; 字符量比较是比较ASCII码大小。

2. 关系表达式的值:成立(真)——1 不成立(假)——0南理工紫金学院 5

C语言课件

例如:已知变量a的值为3,b的值为2,c的值为1

1 ; 则:a>b的值为____1 ; a>b==c的值为____ 0 ; b+c<a的值为____ 0 ; f=a>b>c的值为____

C语言课件

§5.2 逻辑运算符和逻辑表达式1. 逻辑运算符及其优先次序逻辑运算符&& 逻辑与

优先级11

运算对象个数2(双目运算符) 1(单目运算符)

结合性左结合性 右结合性

|| 逻辑或 ! 逻辑非

12 2

优先级次序:!>算术运算符>关系运算符>&&>||>赋值运算符>逗号运算符

C语言课件

形式:常量、变量、表达式(算 2. 逻辑量: 非0—— 真, 0—— 假

3. 逻辑表达式

术表达式、关系表达式、逻辑表 达式、赋值表达式等)

用逻辑运算符将逻辑量连接起来的式子。

4. 逻辑运算的结果(真/假) ① &&:参与运算的两个量都为

真时,结果才为真,否则为假。② ||:参与运算的两个量只要 有一个为真,结果就为真。 两 个量都为假时,结果为假。

&& 真 真 真 假 假 || 真 假 真 真真

假 假假

假 真假

C语言课件

真 假 假;参与运算量为假时,结果为真。 ! 假 真 ③ !:参与运算量为真时,结果为

逻辑表达式的值: 真——1 或 假——0例如:若a的值为4,则① !a的值为____ 0 。

② a&&-5的值为____ 1 。③ a&&0||2的值为____ 1 。

C语言课件

在求解过程中,并不是所有的逻辑运算符都要被 执行。当前面的表达式可以得出整个表达式的结 果时,编译程序不再求后面的表达式。 (1)a&&b&&c:只有a为真时,才需要判断b的值,只 有a和b都为真时,才需要判断c的值。 (2)a||b||c:只要a为真,就不必判断b和c的

值,只 有a为假,才判断b。a和b都为假才判断c。 int x, y, i; x=4; y=5; i= ++x==5 || ++y==6 ; printf("x=%d,y=%d,i=%d\n", x, y, i );

C语言课件

例如:若a=3,b=2,c=1,则 0 。 ( a<b) &&( b>c)的值为____ 0 0 。 (a!=b) && (c==0 )的值为____ 0 1 1 。 a || ( a>b)的值为____ 1 ( 5>3)&&(8< (4- !0 ))的值为____ 0 。 1 1 3 0

C语言课件

例:用逻辑表达式来表示某年year是闰年的条件

闰年的条件:能被4整除,但不能被100整除或 者能被400整除。 year%4==0&&year%100!=0 ||year%400==0 表达式值为1(真)是闰年,否则为非闰年。

C语言课件

可以是任意类型的 § 5.3 if语句表达式,一般为逻 辑或关系表达式

单一语句或 复合语句 一、if语句的3种形式

(1) if(表达式) 语句例:if(a) printf("%d", a); 例:if(x>y) { z=y; y=x; x=z; }

表达式 假 (0)

真(非0)

语句

将变量x和y的值互换

C语言课件

(2) if(表达式) 语句1 else 语句2 例:if (x>y) printf("%d",x); else printf("%d",y); (3) if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 …… else if(表达式m) 语句m else 语句n

真 语句1

表达式

假 语句2

注意:一般else与离其最近的if配对!

C语言课件

例: if (number>500) cost=0.15; else if(number>300) cost=0.10; else if(number>100) cost=0.075; else if(number>50) cost=0.05; else cost=0; 0.15,number>500 0.10,300<number≤500 cost= 0.075,100<number≤300 0.05,50<number≤100 0,number≤50

C语言课件

说明:

语句可以用是空语句。//可以是空语句

例:if (x>=0) ; else

printf("%d",x);

C语言课件

例5.1 输入两个实数,按代数值由小到大的顺序输出 这两个数。#include<stdio.h> void main() { float a,b,t; scanf("%f, %f", &a, &b); a>b ) if( ________ { t=a; a=b; 将变量a和b的值互换 b=t; } printf("%5.2f, %5.2f\n", a, b); //可见a中小,b中大 }

C语言课件

例5.2 输入三个数a,b,c,要求按由小到大的顺序输出。 分析:要求排序后a中最小,c中最大,需比较3次。 if a>b 将a和b对换 if a>c 将a和c对换 (a为a,b中较小者) (a为a,c中较小者,a最小)

if b>c 将b和c对换 (b为b,c中较小者,c最大)

C语言课件

#include <stdio.h> void 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\n",a,b,c); }

本文来源:https://www.bwwdw.com/article/ll2m.html

Top