Можно ли использовать несколько случаев в «если условие» для доступа к той же функции - PullRequest
0 голосов
/ 01 сентября 2018

Мне нужен доступ к одной и той же функции для всех случаев, поэтому я реализовал несколько случаев в условии 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 голосов
/ 01 сентября 2018

Поскольку вы выполняете 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() еще, выведите какое-нибудь сообщение

0 голосов
/ 01 сентября 2018

Попробуйте это: -

switch (key) {
        case 1:
        case 2:
        case 3:
        case 4: 
            Payment();
            break;

        default:
            System.out.println("Choosen an Invlid option");
            break;
        }
...