java - 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 一起打印。对此有何建议?
解决方案
您可以通过使用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");
}
推荐阅读
- c++ - Qt setFilter 搜索?
- python - 使用 python 从部分之间的简单 .txt 文档中提取文本
- sql - 透视 SQL 表 | 将列值转换为列标题
- c - 为什么您不必从递归函数返回值以在 C 中获得正确的返回值?
- handlebars.js - 有没有办法将 javascript 变量插入 Bigcommerce Handlebars
- sql - 透视具有多个联合的查询
- hololens - MRTK 问题
- mysql - MySQL优化500M+行表
- javascript - 覆盖 DevExpressReactive Grid 库中的表编辑行以使受控文本字段相互依赖
- angular - 具有 Angular Universal 的 Angular 元素