选择结构程序设计 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

•选择结构程序设计
作用:根据所指定的条件是否满足,决定从给定的两组操作选择其一。

实现:if语句
最常用的形式:if(关系表达式)语句1 else 语句2
5.1关系运算符和关系表达式
关系运算:将两个值进行比较,判断其比较的结果是否符合给定的条件。

5.1.1关系运算符及其优先次序
6种关系运算符:1.< 2.<= 3.> 4.>=
5.==(等于)
6.!=(不等于)
优先次序:1.前4种的优先级别相同(高于后2种),后2种也相同。

2.关系运算符的优先级低于算术运算符,高于赋值运算符。

5.1.2关系表达式
------用关系运算符将两个表达式(算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子。

关系表达式的值---逻辑值(“真”或“假”)。

C语言没有逻辑型数据,以“1”代表“真”,以“0”代表“假”。

赋值表达式:若d=a>b (a=3,b=2),则d=1
5.2逻辑运算符和逻辑表达式
------用逻辑运算符将关系表达式或逻辑量连接起来的式子。

5.2.1逻辑运算符及其优先次序
3种逻辑运算符:(1)&& 逻辑与
(2)I I 逻辑或
(3)!逻辑非
“&&”和“I I”是双目运算符,它要求有两个运算量(操作数)
“!”是一目运算符,只要求有一个运算量
逻辑运算的真值表
多个逻辑运算符的优先次序:
5.2.2逻辑表达式
逻辑表达式的值是一个逻辑量“真”或“假”。

表示逻辑运算结果:1代表“真”,0代表“假”。

判断数值:0代表“假”,非0代表“真”。

逻辑运算符两侧的运算对象可以是0,1,或0,非0的整数,也可以是字符型、实型、指针型。

改进的逻辑运算的真值表
逻辑表达式的求解中,是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符
对&&运算符:(a&&b&&c)只有a不为0才继续右边运算。

对I I运算符:(a I I b I I c)只有a=0才继续右边运算。

5.3If语句
------判定所给定的条件是否满足,根据判定结果决定执行给出的两种操作之一。

5.3.1if语句的3种形式
1.if(表达式)语句
2.if(表达式)语句1 else 语句2
3.if(表达式1)语句1
else if(表达式2)语句2
else if(表达式3)语句3
……
else if(表达式m)语句m
else 语句n
说明:1.if后面的表达式一般为逻辑表达式或关系表达式
2.2和3 if语句中,每个else前面有一分号,整个语句结束处有一分号。

3.if或else后面若有多个操作语句,用“{ }”将几个语句括起成为复合语句。

5.3.2if语句的嵌套
------if语句中又包含一个或多个if语句
Else总是与它上面的最近的未配对的if配对。

可用“{ }”限定内嵌if语句的范围。

5.3.3条件运算符
一般形式:表达式1?表达式2:表达式3
要求有3个操作对象(三目运算符)
例:max=(a>b)?a:b
ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch
说明:
1.执行顺序:求解表达式1,若为非0(真)则求解表达式2。

若表达式1的值为0(假)则求解表达式3。

2.条件运算符优先于赋值运算符低于关系运算符和算术运算符。

max=a>b?a:b
3.结合方向为“自右至左”
4.“表达式2”和“表达式3”可以是数值表达式,还可以是赋值表达式或函数表达式。

5.表达式1的类型可以与表达式2和表达式3的类型不同。

若表达式2和表达式3的类型不同,条件表达式的值的类型为二者中较高的类型。

5.4Switch语句
-----直接处理多分支选择。

一般形式:switch(表达式)
{
case常量表达式1;语句1
case 常量表达式2;语句2
……
case 常量表达式n;语句n
default;语句n+1
}
说明:
(1)switch后面的表达式,其值可以是整型、字符型、枚举型数据。

(2)所有case中的常量表达式的值都没有与表达式的值匹配的,执行default后面的语句。

(3)每个case常量表达式的值必须互不相同。

(4)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。

因此,应该在执行一个case分支后,用一个break语句来使流程跳出switch结构。

在case后面若包含一个以上执行语句可不用花括号括起。

(5)各个case出现次序不影响执行结果。

(6)多个case可共用一组执行语句
例:
5.5程序举例
•循环控制
•预处理命令
•结构体与共用体
•位运算
•文件
•常见错误和程序调试。

相关文档
最新文档