下面列舉幾個容易出錯的if語句例項,如果後續還有新的發現,還會繼續更新!
int n = 5初次執行,感覺一切正常,沒有錯誤,這時我把n的值改為-5重新編譯後,------結果還是為正。;
if(n > 0
); printf(
"值為正
");
這是為什麼?
仔細一瞧,我們發現在(n > 0)後面我們多加了個分號!!!
原因:只有乙個分號的語句叫做空語句(執行空語句後什麼也不會發生),因此可以這樣理解:
if(n > 0若執行該if語句,無論n是什麼值(正、負和0),結果都會顯示「值為正」。) ;
printf(
"值為正
");
不要把判斷相等性(是否相等)時使用的 == 運算子和 = 混淆。
錯誤: 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)
下面是判斷變數a是否大於等於3小於等於5的例子。
錯誤:if(a >= 3 & a <= 5)
正確:if(a >= 3 && a <= 5)
原因:邏輯運算子中使用的是 && 或 || 運算子,不要與 & 、| 混淆,它們是不同的。
運算子形式
名稱綜合性
&x & y
按位與運算子左|
x | y
按位或運算子左&&
x && y
邏輯與運算子左||
x || y
邏輯或運算子
左
容易忽視而出錯的SQL語句
今天在更改字段型別的sql出現了錯誤,還好有大神朋友幫忙指正,大神看一眼sql就發現了問題,我還在被sql日誌帶的轉圈圈,看來我和大神之間的距離不是肉眼可及的。特意回顧了其他常見但是容易忽視而出錯的sql語句。1 新增表字段 alter table 表名 add 欄位名 型別 值 示例 alter ...
C 容易出錯的點
1 c風格字串的兩種形式 1 char a 手動新增結束符 0 2 char a abv 預設新增 0 2 sizeof 返回的值表示的含義如下 單位位元組 陣列 編譯時分配的陣列空間大小 指標 儲存該指標所用的空間大小 儲存該指標的位址的長度,是長整型,應該為4 型別 該型別所佔的空間大小 物件 ...
FlashDevelop 的配置 容易出錯的地方
不知道為什麼總是要我重新配置,有天我突然發現 無法在flashdevelop中trace了。原因是 externalplayer 的 path不知道為什麼沒有了,這裡我列一下需要配置的地方 tool program settings 1 as3context flex sdk 2 ascomplet...