是否可以在“如果条件”中使用多种情况来访问同一功能

时间:2018-09-01 03:33:18

标签: java switch-statement

我需要为所有情况访问相同的函数,因此我在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");
                }
            }
        }

2 个答案:

答案 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(),否则,打印一些消息