1、逻辑与: 条件1 && 条件2 逻辑与运算中,判断口诀(同真为真,一假皆假) 2、逻辑或: 条件1||条件2 逻辑或运算中,判断口诀(同假为假,一真皆真) 3、逻辑非: !条件 逻辑非运算中,(变真为假,变假为真) 就从代码中解释吧 #include <stdio.h> int main() { //*****************逻辑与(&&)******************** /* int a = 10>3 && 2>7; printf ("%d\n",a );//a的值为1
int b = 0 && 10;//会报警告 printf("%d\n",b );*/ /*-- int a = 10; int b = 10; int c= a<5 && ++b>=11; printf("a=%d,b=%d,c=%d\n",a,b,c );//输出结果:a=10,b=10,c=0,因为判断a<5不成立即语句不进行逻辑与&&右边的语句,即++b不执行,b=10,c=0; */ /*----- int a =10 ; int b =10; int c =a>5 && ++b>=11; printf("a=%d,b=%d,c=%d\n",a,b,c );//输出结果:a=10,b=11,c=1,因为判断a>5成立,即再判断++b>=11也成立,即b=11,c=1 */
//********************逻辑或(||)******************** /*int a=10; int b=11; int c=a<5||b++ - 10; printf("a=%d,b=%d,c=%d\n",a,b,c);//输出结果:a=10,b=12,c=1,逻辑或刚好和逻辑与相反,逻辑或||左边如果不成立就要判断右边语句,如果右边也不成立即整个语句不成立,只要有一条语句成立就成立,判断a<5不成立,在判断b++ -10条件成立,则输出c=1,b进行自加得b=12; */
/*int a=10; int b=11; int c=a>5||b++ - 10; printf("a=%d,b=%d,c=%d\n",a,b,c);//输出结果:a=10,b=11,c=1,因为判断a>5成立,即逻辑或运算不需要在进行判断b++ -10,则输出c=1,b++没执行,则b=11; */ //**********************逻辑非 !条件******************* //int a=!(10>8); //int a=!0; int a=!!10;//非非为真 printf("%d\n",a ); return 0;
} 代码分别运行的结果如下图所示,
|