黑马程序员技术交流社区

标题: 学习c语言中的逻辑与&&、逻辑或||、逻辑非!总结 [打印本页]

作者: CrazyMan    时间: 2014-11-20 13:20
标题: 学习c语言中的逻辑与&&、逻辑或||、逻辑非!总结
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;

}
代码分别运行的结果如下图所示,

屏幕快照 2014-11-19 下午9.14.16.png (47.34 KB, 下载次数: 15)

屏幕快照 2014-11-19 下午9.14.16.png

作者: CrazyMan    时间: 2014-11-21 00:57
没人看到我这个帖子吗??
作者: weizhang00    时间: 2014-11-21 00:58
逻辑运算符还看什么?:o




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2