C语言入门之关系表达式
程序员文章站
2024-03-15 19:42:24
...
-
关系运算符及其优先次序
Ø关系表达式
- 用关系运算符将两个数值或数值表达式连接起来的式子
- 关系表达式的值是一个逻辑值,即“真”或“假”
- 在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”
Ø3种逻辑运算符:
&&(逻辑与) ||(逻辑或) !(逻辑非)
Ø&&和||是双目(元)运算符
Ø!是一目(元)运算符
Ø逻辑表达式
用逻辑运算符将关系表达式或其他逻辑量连接起来的式子
Ø逻辑表达式的值应该是逻辑量“真”或“假”
Ø编译系统在表示逻辑运算结果时
以数值1代表“真”,以0代表“假”
Ø但在判断一个量是否为“真”时
以0代表“假”,以非0代表“真”
注意:将一个非零的数值认作为“真”
(1) 若a=4,则!a的值为0
(2) 若a=4,b=5,则a && b的值为1
(3) a和b值分别为4和5,则a||b的值为1
(4) a和b值分别为4和5,则!a||b的值为1
(5) 4 && 0 || 2的值为1
Ø判别某一年是否闰年,用逻辑表达式表示
Ø闰年的条件是符合下面二者之一:
①能被4整除,但不能被100整除,如2008
②能被400整除,如2000
(year % 4 == 0 && year 100 !=0)
|| year % 400 == 0
如果表达式值为1,则闰年;否则为非闰年
-
逻辑型变量
Ø这是C99所增加的一种数据类型(bool变量)
Ø可以将关系运算和逻辑运算的结果存到一个逻辑型变量中,以便于分析和运算
a.逻辑或短路测试
b.逻辑与短路测试
#include "stdafx.h"
int main(int argc, char* argv[])
{
int x = 0,y = 0;
if(5>3 || (x=3)) //由于5>3为真,逻辑或的值已经
{ //确定,造成逻辑或短路现象,即x=3
} // 不会执行到
printf("x=%d\n",x);
if(3>5 && (y=5)) //由于5>3为假,逻辑与的值已经
{ // 已经确定,造成逻辑与短路现象,
} // 即y=5不会执行到
printf("y=%d\n",y);
return 0;
}
-
条件运算符和条件表达式
例: 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换
#include <stdio.h>
int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A' && ch<='Z‘)?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
上一篇: MVP模式使用示例详解