zoukankan      html  css  js  c++  java
  • 容易出错的 if 语句

    下面列举几个容易出错的if语句实例,如果后续还有新的发现,还会继续更新!

    出错一:在括起控制表达式的括号后面加分号

        int n = 5;
        if(n > 0);
            printf("值为正");

    初次运行,感觉一切正常,没有错误,这时我把n的值改为-5重新编译后,------结果还是为正。

    这是为什么?

    仔细一瞧,我们发现在(n > 0)后面我们多加了个分号!!!

    原因:只有一个分号的语句叫做空语句(执行空语句后什么也不会发生),因此可以这样理解:

        if(n > 0)
            ;
        printf("值为正");

    若执行该if语句,无论n是什么值(正、负和0),结果都会显示“值为正”。

    出错二:判断相等性时使用 =

    不要把判断相等性(是否相等)时使用的 == 运算符和 = 混淆。

    错误: if(a = 0)

    正确: if(a == 0)

    原因:在第一个错误的例子中,变量a会被赋值为0。另外,不管a的值如何,该语句都不会被执行。

    出错三:判断三个变量的相等性时使用 ==

    下面是判断变量a、b、c的值是否相等的例子。

    错误:if(a == b == c)

    正确:if(a == b && b == c)

    原因:相等运算符 == 是双目运算符,所以 a == b == c 不能实现对三个变量的判断。

    出错四:两个条件的判断不使用 && 或 ||

    下面是判断变量a是否大于等于3小于等于5的例子。

    错误:if(3 <= a <= 5)

    正确:if(a >= 3 && a <= 5)

    出错五:使用以 bit 为单位的逻辑运算符代替逻辑运算符

    下面是判断变量a是否大于等于3小于等于5的例子。

    错误:if(a >= 3 & a <= 5)

    正确:if(a >= 3 && a <= 5)

    原因:逻辑运算符中使用的是 && 或 || 运算符,不要与 & 、| 混淆,它们是不同的。

    运算符

    形式

    名称

    综合性

    &

    X & Y

    按位与运算符

    |

    X | Y

    按位或运算符

    &&

    X && Y

    逻辑与运算符

    ||

    X || Y

    逻辑或运算符

  • 相关阅读:
    HDU4507 吉哥系列故事――恨7不成妻(数位dp)
    UCF Local Programming Contest 2017 G题(dp)
    ICPC Latin American Regional Contests 2019 I题
    UCF Local Programming Contest 2017 H题(区间dp)
    HDU2089 不要62
    AcWing1084 数字游戏II(数位dp)
    UCF Local Programming Contest 2017 F题(最短路)
    Google Code Jam 2019 Round 1A Pylons(爆搜+贪心)
    AcWing1083 Windy数(数位dp)
    Vue
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/8337577.html
Copyright © 2011-2022 走看看