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

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

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

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

这是为什么?

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

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

    if(n > )
;
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

逻辑或运算符

容易出错的 if 语句的更多相关文章

  1. 【详解JavaScript系列】JavaScript之流程语句

    一 开篇概述 本讲主要讲解JavaScript流程语句,其大致内容包括如下: 其中,常用的if,while,do..while,for在本片文章就不论述,重点论述for..in..,label,bre ...

  2. MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...

  3. SQL Server高速生成SQL增删改查语句

    你还在手写程序生成SQL语句吗?你还在为由于马虎出错的SQL语句而感到无语吗?你还在为不知如何表达复杂的SQL语句而纠结吗?假设你的回答为"是".那你就OUT啦.快来试试应用SQL ...

  4. Golang switch语句总结

    switch 语句基本结构 switch 条件表达式 { case 常量表达式1: 语句 1 case 常量表达式2: 语句 2 . . . case 常量表达式n: 语句 n default: 语句 ...

  5. 九个最容易出错的 Hive sql 详解及使用注意事项

    阅读本文小建议:本文适合细嚼慢咽,不要一目十行,不然会错过很多有价值的细节. 文章首发于公众号:五分钟学大数据 前言 在进行数仓搭建和数据分析时最常用的就是 sql,其语法简洁明了,易于理解,目前大数 ...

  6. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  7. MySql - InnoDB - 事务 , Php版

    (出处:http://www.cnblogs.com/linguanh/) 1,前序 由于要重构APP(社交类) 服务端接口的部分代码,故接触到了 innoDB,以及事务这个词,下面主要是以例子的形式 ...

  8. mysql中binlog_format模式与配置详解

    mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复 ...

  9. java基础-包

    浏览以下内容前,请点击并阅读 声明 为了使类型更容易查找和使用,避免命名冲突,以及可视范围的控制,程序员一般将相关的一些类型组合到一个包中.组合的类型包括类,接口,枚举和注释,枚举是一种特殊的类,而注 ...

随机推荐

  1. FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节

    注意部FPM时的环境一定要跟生产环境的系统版本最好是保持一至,我第一次测试没通过,(我在CENTOS7和部属FPM打好的包在Centos6.x和安装,结果失败) 1:安装 FPM打包工具的依赖包: [ ...

  2. 在sublime text3中安装git插件

    使用Package Control组件(推荐),打开install package控制台后,直接输入git就可以安装git插件. 这个时候Sublime Text只是安装了git插件,但还不能使用gi ...

  3. angular-resource版本差异问题

    在 AngularJS v1.3.0-beta.14 这个版本里,使用query方法,如果传递进来的数据不是数组,会报错. 在 AngularJS v1.2.18 这个版本里,使用query方法,如果 ...

  4. 使用SpringBoot的yml文件配置时踩的一个坑

    问题描述:使用SpringBoot整合redis进行yml配置的时候,启动工程报错,提示加载application.yml配置文件失败: ::27.430 [main] ERROR org.sprin ...

  5. 【Java】PreparedStatement VS Statement

    创建时: Statement statement = conn.createStatement();    PreparedStatement preStatement = conn.prepareS ...

  6. 解压报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解决方法

    在部署tomcat的环境搞JDK的时候出现这个问题.分享一下. 解压命令:tar -zvxf memcached-1.4.34.tar.gz 遇到了一个问题, gzip: stdin: not in ...

  7. [转载]番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的

    如果你经常读一些关于提高工作效率或时间管理类的博客,一定听说过番茄时间管理法(Pomodoro Technique).这是一种极好的帮助你集中注意力.获得更高工作效率的方法. 基本上,它的实施方法是这 ...

  8. Rsync命令参数详解

    在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来.rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进 ...

  9. find命令查找包含指定内容的文件

    find / | xargs grep function 查找系统根目录下面的所有文件的内容中包含有function字符串的文件列表. find .|xargs grep xfind . -exec ...

  10. Hbase 学习(十一)使用hive往hbase当中导入数据

    我们可以有很多方式可以把数据导入到hbase当中,比如说用map-reduce,使用TableOutputFormat这个类,但是这种方式不是最优的方式. Bulk的方式直接生成HFiles,写入到文 ...