选择结构程序设计
4.1 if语句
If语句有三种基本形式
(1)
if (判断条件) 执行语句;
(2)
if (判断条件) 执行语句1;
else 执行语句2;
(3)
if (判断条件1) 执行语句1;
else if (判断条件2) 执行语句2;
……
else if (判断条件n) 执行语句n;
else 执行语句n+1;
例,输入两个数a,b按由小到大的顺序输出
#include<stdio.h>
int main()
{
float a, b, t;
scanf_s("%f,%f", &a, &b);
if (a > b)
{
t = a;
a = b;
b = t;
}
printf("%5.2f, %5.2f", a, b);
return 0;
}
例,输入三个数a,b,c,按由小到大的顺序输出
#include<stdio.h>
int main()
{
float a, b, c, t;
scanf_s("%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", a, b, c);
return 0;
}
4.2 关系运算符和关系表达式
4.2.1 关系运算符
关系运算符有
(1)
>、<、>=、<=
(2)
==(等于)、!=(不等于)
其中,优先级:(1)高于(2)
此外,优先级顺序:
算数运算符>关系运算符>赋值运算符
4.2.2 关系表达式
用关系运算符将表达式连接起来的式子称为关系表达式,例如
a > b, a + b > b + c, (a = 3) > (b = 5), ’a’ < ‘b’, (a > b) > (b < c)
关系表达式的值是一个逻辑值,即“真”或“假”。逻辑运算中,1代表“真”,0代表“假”
例如,
a=3,b=2,c=1;
则,
关系表达式a>b的值为“真”,表达式的值为“1”;
关系表达式c>b的值为“假”,表达式的值为“0”;
关系表达式
(a>b)==c
的值为“真”,表达式的值为“1”
关系表达式b+c<a的值为“假”,表达式的值为“0”;
4.3 逻辑运算符和逻辑表达式
4.3.1 逻辑运算符
&&(与)、||(或)、!(非)
a&&b:a、b都真,则表达式为真;
a||b:a、b有真则真;
!a:若a真,则!a假;
优先级:!(非)> 算数运算符>关系运算符>&&和||>赋值运算符
(a>b)&&(x>y) 等价于 a>b && x>y
(a==b)||(x==y) 等价于 a==b || x==y
(!a)||(a>b) 等价于 !a || a>b
4.3.2 逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式,逻辑表达式的值是一个逻辑量“真”或“假”,任何非零的数值被认作“真”。
例:设a = 4,b = 5,则
!a的值为0 ;
a&&b的值为1;
a||b的值为1;
!a||b的值为1;
4&&0||2的值为1;
例:‘c’&&’d’的值为1;
例:5>3&&8<4-!0的值为0;
注:
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行,例如
a||b||c:只要a为真,则不必判断b和c的值,只有当a为假时才继续判断;
4.4 条件运算符和条件表达式
条件运算符的格式:
表达式1?表达式2:表达式3
先求解表达式1,若其值为真,则将表达式2的值赋给整个表达式;否则将表达式的值赋给整个表达式。例如
max=(a>b)? a:b;
其含义是:若a>b成立,则max=a;若a>b不成立,则max=b
用条件表达式:
if (a > b) max = a;
else max = b;
优先级:算数运算符>关系运算符>条件运算符>赋值运算符
max=(a>b)? a:b; 相当于 max=a>b? a:b;
a>b? a:b+1;