[英]Comparison of int values in an if statement
我的試卷中有一個問題,我們必須比較int類型變量的值。 我首先想到的是它缺少&&運算符,但我不確定。
int a=2, b=2, c=2;
if(a==b==c)
{
printf("hello");
}
我懷疑,以上語句是否可以在c或c ++中執行? 我也可以說出原因。 謝謝
它會執行,但我相信會給您帶來意想不到的結果。
==
將計算為布爾值,然后將其轉換為int
,然后執行第二次比較,將int
與1
或0
進行比較。
正確的陳述是a==b && b==c
。
例如:
3 == 3 == 3
評估為
true == 3
1 == 3
false
a==b==c
相當於
(a == b) == c
a == b
的結果是1
(如果為true)或0
(如果為false),那么它可能無法達到您的期望。
使用a == b && b == c
檢查三個對象的值是否相等。
a == b == c是c與a == b(1或0)運算結果之間的比較。
使用a==b&&b==c
。 條件a==b==c
等效於(a==b)==c
,如果c == 1,它將提供所需的結果,否則代碼將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.