是否有可能使if語句更短?例如:如果更短,我可以嗎?
if (intno == 0 || intno == 4 || intno == 7)
可能是這樣的:
if (intno == 0 || 4 || 7)
這會彈出一個錯誤,但有這樣的事情?
是否有可能使if語句更短?例如:如果更短,我可以嗎?
if (intno == 0 || intno == 4 || intno == 7)
可能是這樣的:
if (intno == 0 || 4 || 7)
這會彈出一個錯誤,但有這樣的事情?
對於整數類型和枚舉,你可以使用switch語句來代替:
switch(intno) {
case 0:
case 4:
case 7:
//code here
break;
}
這也適用用於Java 7+中的字符串
下已經在評論中有人提出:
Arrays.asList(0, 4, 7).contains(intno)
這是正確的,較短的,但它是慢。
請注意,這段代碼是在幕後進行很多操作:
0
,4
和7
int
s到Integer
秒。List
包含陣列intno
到Integer
equals
對象這是方式比三次檢查慢。當然,如果您每次用戶點擊一個按鈕時都執行一次該代碼,則無關緊要。如果你每秒鐘稱它一百次,它可能會這樣。
然而在我看來,使用這個可以比使用long更清楚,特別是如果不是3,那麼有15個有效條件。如果不是使用幻數你甚至存儲返回的列表中,你可能會得到一些清晰點:
private static final List<Integer> VALID_NUMBERS = Arrays.asList(0, 4, 7);
// ...
if (VALID_NUMBERS.contains(intno)) {
// Code here
}
這是短,可以清晰的。它是較慢,所以要小心這些構造,不要每次都可以使用它。
不,我很確定這個問題在... – awksp
之前就已經問過了,應該是相當明顯的......但無論如何,'int int = 0;'就是這個意思 – user3720291
你應該知道'int'是一個關鍵字。 – NewUser