[英]Multiple variables in If statement?
我剛接觸Java語言,遇到了一些問題。
我正在嘗試制作非常簡單的戰艦游戲。 我有一個3x3數組,其中填充有0和1。1表示有一條船。
陣列中的每個插槽均命名為n-n8。 我想知道是否可以在一個if語句中命名所有變量。
我現在做的方式是
if((n == 1 && x.equals("n") || (n == 1 && x.equals("n1") .. (n == 1 && x.equals("n8")){
System.out.println("Nice shot. Boat down.")}
x是用戶輸入。 您可能會明白這一點。 所以我想知道是否有一種縮短if語句的方法,還是沒有其他方法。 就像是 :
if(n, n1, n2.. n8)
我嘗試查找,但沒有成功。 先感謝您 !
幾種選擇:
使用正則表達式(適用於Java 7/8/9):
if (n == 1 && x.matches("n[1-8]?") {
System.out.println("Nice shot. Boat down.")
}
使用新的Java 9 List.of
便捷方法(替代Arrays.asList
):
if (n == 1 && List.of("n", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8").contains(x) {
System.out.println("Nice shot. Boat down.")
}
Java沒有與您提到的類似的運算符。 但是您可以使用for循環重寫代碼:
for (String number : Arrays.asList("n", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8")) {
if (n == 1 && x.equals(number)) {
System.out.println("Nice shot. Boat down.");
break;
}
}
甚至更好地使用contains
而不是循環
List<String> numbers = Arrays.asList("n", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8");
if (n == 1 && numbers.contains(x)) {
System.out.println("Nice shot. Boat down.")
}
您可以創建八個名稱的列表,並使用contains
if (n == 1 && Arrays.asList("n", "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8").contains(x)) {
System.out.println("Nice shot. Boat down.")
}
這種方法也碰巧是空安全的。
邁科拉說得很對,我建議您從這里看到另一個選擇:
if(n == 1 && Arrays.asList(yourArray).contains(['n1', 'n2', 'n3', 'n4', 'n5', 'n6', 'n7', 'n8']);){
System.out.println("Nice shot. Boat down.")
}
我現在沒有安裝jdk來正確檢查它,但這是想法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.