簡體   English   中英

if語句中int值的比較

[英]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 ,然后執行第二次比較,將int10進行比較。

正確的陳述是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM