逻辑运算和判断选择

这里要考虑到优先级的问题:

1.!(非)

2.算数运算符

3.关系运算符

4.&&和||

5. 赋值运算符

关系运算符内部:>,<,>=,<=优先于==,!=

一、关于优先级的几个例子

b+c <a 

由于算术运算符先算,所以等价于(b+c)<a

a==b < c

==是关系运算符,由于关系运算符内部的原则.所以b<c先算,a==后算,等价于a==(b<c)

 

注:

a = b<c

这时a =是赋值运算,优先级小于关系运算,所以等价于a = (b<c)  (这时个坑,而且不好找)

二、关于写法:

if('c' && 'd')
    {
        //printf("true");
    }

这么写也行,但是比较脑残

三、关于多个逻辑运算:

&&会一个一个判断,如果有一个为false,后面的就不会判断

||判断时,如果有一个为true,后面的就不会判断

int a = 1;
    if(3> 5 && (a = 8))
    {
    }
    printf("a =%d\n",a);
a =1
请按任意键继续. . .

这里(a = 8)的赋值没有被执行

 

    int a = 1;
        if(5>3 && (a = 8))
    {
    }
    printf("a =%d\n",a);    
a =8
请按任意键继续. . .

这里被执行了,a  = 8

同理,|| 也是这样

    int a =1;
    if(4>3 || (a = 8))
    {}
    printf("a = %d\n",a);
a = 1
请按任意键继续. . .

 

    int a =1;
    if(3>4 || (a = 8))
    {}
    printf("a = %d\n",a);
a = 8
请按任意键继续. . .

  在这里说明这些是因为以后有可能涉及到赋值,如果有这种运算,有可能赋值就不会被执行(虽然不太可能)

 

 

posted @ 2019-06-16 16:21  DEVILNEVERCRY  阅读(149)  评论(0)    收藏  举报