选择结构程序设计
- 选择结构和条件判断
在此处的选择结构和高中数学书上的选择结构其实是一样的,在C语言上有两种选择结构:(1)if语句,用来实现两个分支的选择结构;(2)switch语句,用来实现多分支的选择结构。
2.1 条件判断 if
2.1.1 表达式
2.1.2 if 最简单用法
If语句的一般形式
2.2 条件判断 switch
2.3 for 循环
2.4 break 和continue区别
2.5 while循环
-
- do-while循环
3.关系运算符和关系表达式
3.1关系运算符及其优先次序
3.2关系表达式
3.3逻辑运算符及其优先次序
3.4 逻辑表达式
3.5逗号运算符
3.6 三目运算符
___________________________________________________________________________________________
- 用if语句实现选择结构
2.1一个最简单的例子:怎么实现两个变量的值互换。为了实现交换,必须借助第三个变量。算法如下:#include<stdio.h>
Int main()
{
Int a,b,t;
scanf(“%d%d”,&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf(“%d,%d”,a,b);
return 0;
}
2.2 if语句的一般形式
(1)if(表达式) 语句1 (没有else字句部分)
(2)if(表达式)
语句1
else
语句2
(3)if(表达式1)
语句1
else if(表达式2)
语句2
else if(表达式n)
语句n
else
语句n+1
2.2用于多分支选择的 switch语句, 其一般形式为:
switch(表达式)
{
case 常量表达式 1: 语句 1;
case 常量表达式 2: 语句 2;
…
case 常量表达式 n: 语句 n;
default: 语句 n+1;
}
在使用switch语句时还应注意以下几点: 在 case 后的各常量表达式的值不能相 同,否则会出现错误。 在 case 后,允许有多个语句,可以不用{}括起来。 各 case 和default 子句的先后顺序可以变动,而不会影响程序执行结果。 default 子句可以省略不用。 注意 break;的使用
2.3 for 循环
for(初始化;判断;自增)
{ 语句块; }
例如:for(i=1;i<=100;i++) //控制循环次数,i由1变到100,共循环100次
{
printf(“%d”,i);
}
可以用以下的结构图进行表示
2.4 break 和continue区别
break☆☆
break 在 switch 中可以跳出 switch
在 for 和while 循环中可以跳出当前循环
continue☆
在循环中,终止本次循环开始下一次循环
2.5 while循环
格式:
while(表达式)
循环体(语句块)
如果表达式成立 则执行循环体 如果表达式不成立 则跳出循环体
2.6 do-while循环
do
{
循环体;
} while(表达式);
循环体首先被执行一次, 然后判断表达式是否成立, 成立继续执行循环体,不成立跳出循环体 注意while(); 后面的分号
- 关系运算符和关系表达式
3.1关系运算符及其优先次序
C语言提供的6种关系运算符:
- < (小于)
- <=(小于或等于)
- > (大于)
- >= (大于或等于)
- ==(等于)
- !=(不等于)
- ②③④的优先级相同(高)⑤⑥优先级相同(低)
3.2关系表达式 例:关系表达式5==3的值为“假”5>=3”的值为“真”。在C的逻辑运算中,以“1”代表“真”,以“0”代表假。
运算符 |
含义 |
举例 |
说明 |
&&(交集) |
逻辑与 |
a&&b |
如果a和b都为真,则结果为真,否则为假 |
||(并集) |
逻辑或 |
a||b |
如果a和b有一个以上为真,则结果为真,二者都为假时,结果为假 |
! |
逻辑非 |
!a |
如果a为假,则 !a 为真,如果a为真, 则 !a 为假(非0即为真,其他都是假) |
3.3逻辑运算符及其优先次序
“&&”和“||”是双目运算符
逻辑运算的真值表
a |
b |
!a |
!b |
a&&b |
a||b |
真 |
真 |
假 |
假 |
真 |
真 |
真 |
假 |
假 |
真 |
假 |
真 |
假 |
真 |
真 |
假 |
假 |
真 |
假 |
真 |
真 |
真 |
假 |
假 |
在一个逻辑表达式中如果包含多个逻辑运算符,按照由优先级从高到低进行计算:
!(非)>算术运算符>关系运算符>&&和||>赋值运算符。
3.4 逻辑表达式
在判断一个量是否为“真”时,以“0”为假,以非0代表真。
3.5逗号运算符
逗号运算符是指在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
(先判断前几个表达式有没有重新赋值,再看最后一个表达式)
3.5逗号运算符
格式: b ? x : y 要求有三个操作对象<表达式1> ? <表达式2> : <表达式3>
含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果