/*
(二)逻辑表达式:
当判断条件不唯一时,就需要将两个关系表达式用逻辑运算符连接起来构成逻辑表达式。
逻辑运算符:
! 逻辑非 对操作数进行逻辑"取反"
&& 逻辑与 执行"与"操作,操作数都为真时,结果才为真
|| 逻辑或 执行"或"操作,操作数都为假时,结果才为假
常见运算符的优先级:
逻辑非(!)>算术运算符>关系运算符>(&&)和(||)>赋值运算符(=)
*/
/*
随堂练习4-2
1.当x=3,y=4,z=5时,逻辑表达式x > y&& y > z的值为—— 0
(x > y) && (y > z),(3 > 4) && (4 > 5),3>4为假,4>5为假 其值为0
2.用a、b、c表示一个三角形的三边,写出判断该三角形为等腰三角形的逻辑表达式——
a == b || b == c || a == c;
3.判断字符ch的值为大写字母的逻辑表达式为——
ch >= 'A' && ch <= 'Z';
4.写出判断某一年(year)为闰年的逻辑表达式,闰年的条件为:能被4整除但不能被100整除,或者能被400整除
year % 4 == 0 && year % 100 != 0 || year % 400 == 0
*/
//逻辑运算符的演示
#include<stdio.h>
int main()
{
int a = 0, b = 10, c = -6;
//逻辑非:0变1,1变0
printf("%d\n", !c); //非运算 对"c=-6",其值为真(1),进行取反,使其值为假(0)
printf("%d\n", !(c > b)); //非运算 对"-6>10",其值为假(0),进行取反,使其值为真(1)
//逻辑与:有0为0,全1为1
int result_1 = a && b;
printf("%d\n", result_1); //与运算 0 && 10 0为假,10为真 其值为0
printf("%d\n", 9&&0); //与运算 9&&0 9为真,0为假 其值为0
printf("%d\n", 8 && b); //与运算 8&&10 8为真,10为真 其值为1
printf("%d\n", 0&&0); //与运算 0&&0 0为假,0为假 其值为0
//逻辑或:有1为1,全0为0
int result_2 = c || 0;
printf("%d\n", result_2); //或运算 -6||0 -6为真,0为假 其值为1
printf("%d\n", b || 100); //或运算 b||100 b为真,100为真 其值为1
printf("%d\n", a || b == c); //或运算 a||10==-6 a为假,10==-6为假 其值为0
return 0;
}
/*
(二)逻辑表达式:
当判断条件不唯一时,就需要将两个关系表达式用逻辑运算符连接起来构成逻辑表达式。
逻辑运算符:
! 逻辑非 对操作数进行逻辑"取反"
&& 逻辑与 执行"与"操作,操作数都为真时,结果才为真
|| 逻辑或 执行"或"操作,操作数都为假时,结果才为假
常见运算符的优先级:
逻辑非(!)>算术运算符>关系运算符>(&&)和(||)>赋值运算符(=)
*/