如何在不使用IF的情況下比較兩個值。我知道可以使用= ?
或類似的東西。例如,讓我們比較兩個陣列列表c
和t
的大小。對於這一點,我想用類似的代碼:在Java中使用'=?'比較兩個值
boolean answ = ? c.size() = t.size();
如何在不使用IF的情況下比較兩個值。我知道可以使用= ?
或類似的東西。例如,讓我們比較兩個陣列列表c
和t
的大小。對於這一點,我想用類似的代碼:在Java中使用'=?'比較兩個值
boolean answ = ? c.size() = t.size();
嘗試boolean answ = c.size() == t.size();
三元運算符,?
,用於獲取2個的一個答案,你不需要它,如果你只需要一個布爾答案。
要比較通常使用==
而不是=
的值,除非您要比較非原始值(如果您在類中正確覆蓋它,則必須使用equals
方法)。
一個單一的=
是用於作曲,而不是測試相等。
對'String'的引用在這裏有誤解:實際上,您希望對所有*非原始值使用equals()。 'String'絕不是特別的。 – alf 2012-01-02 11:45:43
這應該工作:
boolean answ = c.size() == t.size();
什麼你可能還記得是短if else結構:
return c.size() == t.size() ? true : false;
後者不會編譯。 – alf 2012-01-02 17:50:41
啊當然,回報一定要先......謝謝! – WarrenFaith 2012-01-03 03:44:42
如果你需要使用?你必須寫:
boolean answ = (c.size() == t.size() ? true : false);
但是這比寫
boolean answ = (c.size() == t.size() );
你的意思是三元運算符長多少?
result = expr1 ? expr2 : expr3;
如果expr1
true那麼result
分配的expr2
的結果,expr3
否則結果。所以:
boolean answ = c.size() == t.size() ? true : false;
這就是所謂的三元或條件運算符:
該代碼將比較不使用if
:
boolean answ s= (c.size()==t.size()) ? true : false;
它正在使用,它只是寫得很快而且開銷也在那裏。爲什麼使用三元運算符,如果它沒有運行? – WarrenFaith 2012-01-02 14:23:29
爲什麼你想避免'if'?它可能揭示出你真正想要達到的目標......這僅僅是爲了分配的目的嗎? [這確實是使用trinary操作符的一個很好的理由...] – amit 2012-01-02 11:38:19
並且比較具體到底是什麼? – fge 2012-01-02 11:38:47
boolean answ =(c.size()== t.size()); – dkulkarni 2012-01-02 11:41:14