在代码的这一部分中,扫描仪要求用户输入1到5之间的数字。我需要为一堆变量重写这个,所以有什么方法可以缩短变量吗?
if (Q1 != 1 || Q1 != 2 || Q1 != 3 || Q1 !=4 || Q1 != 5) {
System.out.println("Error: Please enter a number between 1 and 5.");
}
不是输入Q1 != 1
或2或3等,有没有办法写1-5或类似的东西?
答案 0 :(得分:6)
试试这个,
if(Q1 <1 || Q1 >5) System.out.println("Error: Please enter a number between 1 and 5.")
答案 1 :(得分:-1)
对于一般情况,请使用集合。
声明一个类字段或一个局部变量:
Set<Integer> accepted = new LinkedHashSet<>(Arrays.asList(1,2,3,4,5));
然后:
if (!accepted.contains(Q1))
System.out.println("Error: Please enter a number that is one of: " + accepted);
使用LinkedHashSet
,以便打印版本与声明具有相同的顺序。
答案 2 :(得分:-1)
上面的答案很适合这个特定的问题,但是如果你有5个单独的字符串,并且你想检查它们中的每一个是否有效(它们不是空或空),那么你应该创建这样做的方法。
public boolean isValid(String... args) {
for (String s : args) {
if (s == null or s.equals("")) {
//Something is invalid
return false;
}
}
//Everything is valid
return true;
}