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)
c if語句比較注意
4.3.1 布林變數與零值比較 z 規則4 3 1 不可將布林變數直接與true false 或者1 0 進行比較。根據布林型別的語義,零值為 假 記為false 任何非零值都是 真 記為 true true 的值究竟是什麼並沒有統一的標準。例如visual c 將true 定義為 1,而visua...
C if語句 使用if語句
c 的if語句是用來判定所給的條件是否滿足,並根據判斷的結果true或false決定執行哪一步。單個if語句 如 if x y if 表示式 語句1 else 語句2 如 if x y else if 表示式1 語句1 else if 表示式2 語句2 else if 表示式3 語句3 else i...
c if語句講解 例題
if 條件 布林型 2.例子 include using namespace std intmain 輸出 a大於10 描述 輸入乙個數a 如果a是奇數,輸出 jishu 如果a是偶數,輸出 oushu include using namespace std intmain if a 2 0 if ...