逻辑运算符用于判断表达式的真假,其结果为“真”或“假”。
1.逻辑运算符与逻辑表达式
1.表达式:或
逻辑运算符 ,结果就是: 真(1,正确) 假(0,错误)
1. 或 ||
g格式 : 表达式1 || 表达式2
2. 与 &
3. 非 !
表达式“或”代码如下:
#include <stdio.h>
int main(){
printf("%d\n",1 > 0); //1
printf("%d\n",1 < 0); //0
printf("%d\n",1 > 0 || 1 < 0); //1
}
编译结果为:
下面的代码是表达式"或"的练习
#include <stdio.h>
int main(){
printf("%d\n",1 > 0); //1
printf("%d\n",1 < 0); //0
printf("%d\n",1 > 0 || 1 < 0); //1
printf("%d\n",1 > 3 || 3 < 2); //0
printf("%d\n",3 > 2 || 1 > 0); //1
printf("%d\n",1 || 2);//1
printf("%d\n",1 || 1);//1
printf("%d\n",0 || 1 > 3);//0
printf("%d\n",1.6 || 2.5);//1
}
在Dev-c++中编译的结果如下:
2. 与 && 并且
表达式1 && 表达式2
规则:有一个为假,结果就是假;全真就是真
&&代码如下:
#include <stdio.h>
int main(){
printf("%d \n",1 < 0 && 1 > 0);//0
printf("%d \n",3 > 2 && 1 > 0);//1
printf("%d \n",3 < 2 && 1 > 3);//0
}
它的编译结果如下:
代码运算符"与"的练习:
printf("%d \n",1 > 2 && 2 > 3 && 4 > 5);//0
printf("%d \n",2 > 1 || 2 > 3 || 4 > 5);//1
练习结果如下:
运行逻辑运算符时要注意如果"&&"运算符左边的值为假,就不再进行对右边的表达式进行计算。而在使用"||"运算符时如果"||"运算符左边的值为真,就不再进行对右边的表达式进行计算。这就叫短路。
代码如下:
//短路
//&&:如果左边为假,则右边不求值
int i = 0;
2 > 3 && (i = 1);
printf("%d \n",i);
//0
//||:如果左边为真,则右边不求值
int j = 0;
3 > 2 ||(j = 1);
printf("%d \n",j);
//0
编译结果如下:
运算符“!”的运算如下:
// 取反
printf("%d \n",!(1 > 0)) ;//0
printf("%d \n",!0);//1
printf("%d \n",!2);//0
printf("%d \n",!!2);//1
printf("%d \n",!0.01);//0
编译结果如下: