2013-09-27 52 views
-7

運算符& &不能應用於bool和int C#嗎?運算符&&不能應用於bool和int c#

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.Write("Enter number1 : "); 
     Console.Write("Enter number2 : "); 
     Console.Write("Enter number3 : "); 

     int getla1 = Convert.ToInt32(Console.ReadLine()); 
     int getla2 = Convert.ToInt32(Console.ReadLine()); 
     int getla3 = Convert.ToInt32(Console.ReadLine()); 

     if (getla1 && getla2 > getla3) 
     { 
      Console.WriteLine("The third number is the smallest number"); 
     } 
    } 
    } 
} 
+1

什麼是你的問題? –

+0

'getla1'是一個int,而不是'bool'(所以不是真或假)。那麼你打算用'getla1'來檢查什麼?它大於1?它是0?百萬? – Arran

+1

你想做什麼? '&&'運算符是'邏輯運算符'。 – Sean

回答

2
if ((getla1 > getla3) && (getla2 > getla3)) 
{ 
    // The third number is the smallest number 
    Console.WriteLine("Het derde getal is de kleinste getal"); 
} 
1

getla1是int。 & &需要兩個布爾。你的意思是:

if (getla1 != 0 && getla2 > getla3) 

if (getla1 > getla3 && getla2 > getla3) 

+1

查看我的答案,「Het derde getal de de kleinste getal」的意思是「第三個數字是最小的數字」 –

2

您不能在C#中使用類似布爾的整數。

如果您試圖檢查getla1是不是0請使用if (getla1 != 0 && getla2 > getla3) {}

0

你們是不是要比較這兩個值,看看它們是否大於,如果是的話,那麼這樣做:

if ((getla1 > getla3) && (getla2 > getla3)) 
0

你嘗試瞭解編譯器錯誤?代碼if (getla1 && getla2 > getla3)表示if ((getal1) && (getal2 > getal3))

由於getal1int,因爲條件需要評估爲布爾值,所以不能將其用作條件。

你不能比較多個數字。您正在尋找這樣的:

if ((getal1 > getal3) && (getal2 > getal3)) 
1

我想你想要做的是檢查是否添加getla1getla2大於getla3

if ((getla1 + getla2) > getla3) 
    { 
     Console.WriteLine("Het derde getal is de kleinste getal"); 
    } 
0

我覺得你是想查詢的條件是什麼像這樣

(getla1 + getla2) > getla3 
2

getla1是一個整數。因此,在C#中將整數視爲布爾值沒有定義的行爲。如果你使用的動態類型語言,其中一個整數是「truthy」如果是非零的,那麼你就需要覈對零整數

if (getla1 != 0 && getla2 > getla3) {...} 
相關問題