[英]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.