`
deepfuture
  • 浏览: 4437704 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80447
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:71029
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:104315
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:288001
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15204
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:68623
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32692
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46372
社区版块
存档分类
最新评论

c++ -if语句比较注意

阅读更多

4.3.1 布尔变量与零值比较
z 【规则4-3-1】不可将布尔变量直接与TRUE、FALSE 或者1、0 进行比较。
根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为
TRUE)。TRUE 的值究竟是什么并没有统一的标准。例如Visual C++ 将TRUE 定义为
1,而Visual Basic 则将TRUE 定义为-1。
假设布尔变量名字为flag,它与零值比较的标准if 语句如下:
if (flag) // 表示flag 为真
高质量C++/C 编程指南,v 1.0
2001 Page 28 of 101
if (!flag) // 表示flag 为假
其它的用法都属于不良风格,例如:
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)
4.3.2 整型变量与零值比较
z 【规则4-3-2】应当将整型变量用“==”或“!=”直接与0 比较。
假设整型变量的名字为value,它与零值比较的标准if 语句如下:
if (value == 0)
if (value != 0)
不可模仿布尔变量的风格而写成
if (value) // 会让人误解 value 是布尔变量
if (!value)
4.3.3 浮点变量与零值比较
z 【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要
避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) // 隐含错误的比较
转化为
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON 是允许的误差(即精度)。
4.3.4 指针变量与零值比较
z 【规则4-3-4】应当将指针变量用“==”或“!=”与NULL 比较。
指针变量的零值是“空”(记为NULL)。尽管NULL 的值与0 相同,但是两者意义不
同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:
if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
if (p != NULL)
不要写成
if (p == 0) // 容易让人误解p 是整型变量
if (p != 0)
或者
if (p) // 容易让人误解p 是布尔变量
if (!p)

分享到:
评论

相关推荐

    02-if语句及应用.pdf

    例如,在C++中,如果我们要比较两个整数x和y并交换它们的值,可以使用如下的单分支if语句: ```cpp if (x ) { t = x; x = y; y = t; } ``` 这里,如果x小于y,那么变量t将存储x的值,x将获得y的值,最后y将得到t...

    c++入门内容(if语句)经典例题:(闰年判断.cpp)

    输入年份,输出是否是闰年

    C++学习日记--分支结构(if语句)

    【C++学习日记--分支结构(if语句)】 在编程语言中,if语句用于实现条件控制,它允许程序根据特定条件的真假执行不同路径的代码。在C++中,if语句的基本形式如下: ```cpp if (condition) { // 当条件condition...

    c++--语言-选择结构程序设计.ppt

    根据提供的文件信息,我们可以深入探讨C++中的选择结构程序设计,特别是if语句的不同形式及其应用。 ### C++中的选择结构程序设计 选择结构是一种基于条件判断来决定程序执行路径的编程逻辑。在C++中,选择结构...

    第五章 IF语句与逻辑运算符1.zip

    在C++编程语言中,控制流是程序执行的关键部分,其中IF语句和逻辑运算符起着至关重要的作用。本章将深入探讨这些概念,并通过一系列的swf教程文件进行详细讲解。 首先,我们从基础开始,理解"什么是语句"(01什么是...

    c++if语句、决策语句块和变量作用域

    ### C++ if语句、决策语句块和变量作用域详解 #### 一、引言 在计算机编程中,能够根据不同的条件改变程序的行为是非常重要的。C++作为一种强大的编程语言,提供了多种方式来实现这样的功能。本文将详细介绍C++中的...

    C++-代码解析(词法分析、语法分析).docx

    * 语法分析:使用if-else语句和switch-case语句来实现语法分析,组合出语法正确的语句。 * 结果输出:输出词法分析和语法分析的结果,包括头文件、类名、函数名等信息。 本文提供了一个基本的C++代码解析器的实现,...

    C++考试流程控制语句

    - **题目示例**:“为了避免嵌套的if语句的二义性,C++规定else同(B)”。 - 解析:C++中,`else`总是与最近的`if`语句关联。这有助于避免二义性问题,确保每个`else`都能明确对应到一个`if`。 8. **循环控制语句*...

    C++-代码解析.docx

    作者使用了 if-else 语句和 switch-case 语句来实现词法分析,证明了词法分析的基本原理。 二、语法分析 语法分析是编译过程的第二阶段,负责对词法分析器生成的 token 序列进行语法分析,以便检查源代码是否符合...

    C++-代码解析.pdf

    该程序使用了基本的if-else语句和switch-case语句来实现词法分析和语法分析的功能。 在词法分析阶段,程序将源代码分割成一个个token,然后对每个token进行处理。例如,对于标识符,程序将其转换为一个词法单元,而...

    C++-primer-(初学者可看笔记).pdf

    本章节主要介绍了 C++ 中的控制结构,包括 if 语句、switch 语句、while 语句、for 语句和 do-while 语句等。学习了如何使用这些语句来控制程序的流程和逻辑。 本资源旨在帮助初学者快速掌握 C++ 的基础知识,提供...

    用if语句计算整数绝对值

    本节我们将深入探讨如何使用if语句来计算整数的绝对值,尤其在不依赖内置库函数的情况下。 首先,让我们理解if语句的基本结构。if语句是条件控制语句,它允许程序根据特定条件执行不同的代码块。其基本形式如下: ...

    C++ - C++语法 - C++程序设计

    C++的控制结构如条件语句(if-else)和循环语句(for、while、do-while)为程序提供了必要的逻辑分支和迭代执行的能力。 函数在C++中是组织代码和实现功能封装的基本单位。函数的定义和声明涉及返回类型、函数名、...

    C++ 分支结构--if-else

    平时我们在说“如果……那么……”的时候,还经常和“否则……”连用。...虽然这样也能够把意思表达清楚,但是语句显得冗长,要是条件再多一点则更是杂乱。可见,在程序设计中,如果没有“否则……”语句将会多么麻烦。

    高质量C++-C编程指南

    if语句是C++/C语言中最简单、最常用的语句,然而很多程序员用隐含错误的方式写if语句。本节以“与零值比较”为例,展开讨论。 4.3.1 布尔变量与零值比较 l 【规则4-3-1】不可将布尔变量直接与TRUE、FALSE或者1...

    武汉理工大学编译原理课程设计 IF-THEN条件语句的翻译程序设计(递归下降法、输出三地址码)

    《编译原理课程设计——基于IF-THEN条件语句的翻译程序设计》 在计算机科学领域,编译原理是理解程序如何转化为机器可执行代码的关键学科。本项目以武汉理工大学的课程设计为例,探讨了如何使用递归下降法来设计一...

    The-C++-Programming-Language(ch 6)

    《C++编程语言》第六章:“表达式与语句”深入解析 在深入探讨C++的表达式与语句之前,我们先回顾一下这门语言的重要性。C++是一种静态类型的、编译式的、通用的、面向对象的编程语言,由贝尔实验室的Bjarne ...

    cc++程序员面试宝典-switch语句

    内容涵盖了switch语句的定义、基本语法、使用场景、优点、注意事项、与if语句的区别、实战应用、多重分支、范围检查、字符串处理、默认情况、性能考虑、灵活性、多态性、安全性、调试、性能优化和最佳实践等高级知识...

    基于PL/0语言的扩充——if-then-else,do-while-until,for

    在PL/0的原始版本中,仅支持简单的if语句,但在此扩充中,我们增加了else部分,使得可以提供备选的代码路径。例如: ```pl0 if condition then statement1 else statement2 ``` 这里,`condition`是需要评估的...

Global site tag (gtag.js) - Google Analytics