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

    逻辑或运算符

  • 相关阅读:
    201116西瓜书机器学习系列---2、模型评估
    201116西瓜书机器学习系列---1、绪论
    js中null和undefined的区别
    ajax和pjax有什么区别
    html5中的web存储
    Java调用linux命令及Shell脚本
    plsql developer中,清除登录历史
    PLSQL自动登录,记住用户名密码&日常使用技巧
    Linux中查看进程状态信息
    Is there any difference between GROUP BY and DISTINCT
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/8337577.html
Copyright © 2011-2022 走看看