我需要为所有情况访问相同的函数,因此我在if条件下实现了多个情况。因为IDE为此抛出错误,所以很显然这是错误的实现。但是,有什么东西可以替代这种逻辑。
java
void movie() {
int m;
System.out.println("Choose the movie :");
System.out.println("1.BAHUBALI\n2.SHIVAAY\n3.DANGAL\n4.AIRLIFT");
m =sc.nextInt();
switch(m){
if(case 1: || case 2: || case 3: || case 4:) {
Payment();
}
else {
System.out.println("Choosen an Invlid option");
}
}
}
答案 0 :(得分:7)
尝试一下:-
switch (key) {
case 1:
case 2:
case 3:
case 4:
Payment();
break;
default:
System.out.println("Choosen an Invlid option");
break;
}
答案 1 :(得分:0)
由于您在此处进行Integer
比较,因此可以使用Map
将比较减少到一个条件。像下面这样
Map<String, Integer> map = new HashMap<>();
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
map.put("4", 4);
void movie() {
int m;
System.out.println("Choose the movie :");
System.out.println("1.BAHUBALI\n2.SHIVAAY\n3.DANGAL\n4.AIRLIFT");
m = sc.nextInt();
if (map.containsKey(m)) {
Payment();
}
else {
System.out.println("Choosen an Invlid option");
}
}
Map.containsKey:如果此映射包含指定键的映射,则返回true。
因此,首先,我们将期望的用户值放入Map
对象中,然后使用containsKey
检查对象中是否存在实际的用户输入。如果是,则调用Payment()
,否则,打印一些消息