首页 > 解决方案 > else 语句每次都会与 if 语句一起打印

问题描述

这里通过构造函数,我基于 if-else 逻辑初始化我的私有数据成员。下面是我的代码 -

public BookMyMovie(int movieId, int noOfTickets) {
    
    int arr[]= {101,102,103};
    for(int i: arr)
    {
        if(movieId==i)
        {
            this.movieId=movieId;
        }
        else
        {
            System.out.println("Sorry! Invalid Movie ID!\n"
                    + "Please check the Movie ID and enter once again.\n");
        }
    }

    
    this.noOfTickets = noOfTickets;
}

所以,在这里我只采用属于数组中声明的三个 id 之一的 id。但是每次它都会将 else 语句与 if 一起打印。对此有何建议?

标签: java

解决方案


您可以通过使用arraylist并检查movieId是否存在于列表中来避免重复循环数组元素,如下所示

如果需要,可以将在列表中存储值移出此方法

        List<Integer> movieNumbers = new ArrayList<Integer>();
        movieNumbers.add(101);
        movieNumbers.add(102);
        movieNumbers.add(103);

        if(movieNumbers.contains(movieId)) {
            System.out.println("It is valid Movie ID!\n");
        }else
        {
            System.out.println("Sorry! Invalid Movie ID!\n"
                    + "Please check the Movie ID and enter once again.\n");
        }

推荐阅读