我寫了一行總共加起來的總價值是否可以在「if()」中包含=號?
int totalValue = value1 + value2 + value3;
現在我想用一個if語句來寫if (totalValue = 200);
但它給了我一個錯誤說「無法從一個int轉換爲布爾類型」 。
我應該怎麼做,因爲我想用else if(); System.out.println();
我寫了一行總共加起來的總價值是否可以在「if()」中包含=號?
int totalValue = value1 + value2 + value3;
現在我想用一個if語句來寫if (totalValue = 200);
但它給了我一個錯誤說「無法從一個int轉換爲布爾類型」 。
我應該怎麼做,因爲我想用else if(); System.out.println();
if (totalValue == 200)
=
是分配值有四種可能的結果,==
是比較值。
Java中的=
運算符只能分配;你想比較totalValue到200,所以你應該使用==
比較運算符。
if(totalValue = 200){
...
}
請注意,你不應該有一個if
語句後一個分號,因爲那麼Java將基本忽略if
。
如果您編寫if(totalValue = 19),它會評估您是否可以成功地將19賦給totalValue。
成功與否,在Java中是一個布爾值,所以它期望評估布爾值。 表達:
if((totalValue = 19) == True){ ... }
是正確的,但也沒用,在這種情況下,因爲它幾乎肯定成功賦值
如果你想只檢查值必須使用==
'true'在Java中拼寫爲小寫字母t。 – 2015-02-06 01:26:24
是的,但平等爲==
,作業爲=
。此外,請不要用分號結尾您的if
聲明,也不要終止if
的正文。
// if (totalValue = 200);
if (totalValue == 200) {
// Do stuff for when the value is 200
} else {
// Do stuff when the value is not 200
}
像其他人說的那樣,Java中的'='操作符用於分配值。然而(可能有點偏離主題),賦值本身的計算結果爲賦值,可以在布爾表達式中重用。
這可以在這個循環中,其中的readLine的結果被存儲,並與空在單個表達式中使用,如:
int value;
while ((value = reader.read()) != -1) {
doSomething(value);
}
=符號是賦值運算符。
做if(totalValue = 200)
實際上將200分配給totalValue。
你需要的是==操作符
if(totalValue == 200)
{
System.out.println("200");
}
else if (totalValue == 100)
{
System.out.println("100");
} //...
把線路終端在當年底(總價值== 200); 將終止條件語句。這意味着它下面的語句不僅會在條件評估爲真時執行。
另外,我認爲總是在if()之後放一個語句以防止問題出現在範圍之內是一種很好的做法。這裏有一個鏈接來展示如何發生(並阻止)https://stackoverflow.com/questions/21999473/apples-goto-fail-security-bug
'='是一個賦值運算符,而不是比較運算符。 – lared 2015-02-06 00:54:04
'if(totalValue == 200)'又如何去掉';'呢? – Reimeus 2015-02-06 00:54:13
謝謝你們! – 2015-02-06 00:58:36