有没有办法缩短这样的东西?

时间:2016-04-09 23:18:06

标签: java

在代码的这一部分中,扫描仪要求用户输入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或类似的东西?

3 个答案:

答案 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;
}