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

Java 有没有办法缩短这样的东西?,java,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或类似的东西?试试这个 if(Q1 <1 || Q1 >5)

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

试试这个

if(Q1 <1 || Q1 >5) System.out.println("Error: Please enter a number between 1 and 5.")
if(Q1 5)System.out.println(“错误:请输入一个介于1和5之间的数字”)
试试这个

if(Q1 <1 || Q1 >5) System.out.println("Error: Please enter a number between 1 and 5.")
if(Q1 5)System.out.println(“错误:请输入一个介于1和5之间的数字”)

对于一般情况,请使用集合

声明类字段或局部变量:

Set<Integer> accepted = new LinkedHashSet<>(Arrays.asList(1,2,3,4,5));

使用
LinkedHashSet
以便打印版本与声明具有相同的顺序。

对于一般情况,使用集合

声明类字段或局部变量:

Set<Integer> accepted = new LinkedHashSet<>(Arrays.asList(1,2,3,4,5));

使用
LinkedHashSet
使打印版本与声明具有相同的顺序。

对于这个特定的问题,上面的答案很好,但是如果您有5个单独的字符串,并且您想检查它们是否都有效(它们不是null或空),那么您应该创建一个方法来执行此操作

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

对于这个特定的问题,上面的答案很好,但是如果您有5个单独的字符串,并且您想检查它们是否都有效(它们不是null或空),那么您应该创建一个方法来实现这一点

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

你应该试着看看这个:这总是
true
@RC。是的,因为
1=2==true
1=3==true
…好吧,这里有某种“捷径”1=1为假,因此..@RC。这是或,不是和。你应该试着看一下:这总是
真的
@RC。是的,因为
1=2==true
1=3==true
…好吧,这里有某种“捷径”1=1为假,因此..@RC。这是或,不是和。如果你留下一个解释,解释它为什么有效,我会完全满意这个答案。我承认这是非常明显的,但仍然…因为你检查的是一个范围内的值,而不是谨慎的随机数,这应该是可行的。If语句根据范围检查输入。很明显,我知道它为什么工作。我只是个哑巴,甚至都没想到。如果你能解释一下为什么它会起作用,我会对这个答案完全满意的。我承认这是非常明显的,但仍然…因为你检查的是一个范围内的值,而不是谨慎的随机数,这应该是可行的。If语句根据范围检查输入。很明显,我知道它为什么工作。我只是一个哑巴,甚至没有想到。这不是你的答案错了,这只是在这个场景中的过度杀伤力。@Makoto Quote“对于一般情况…”不是你的答案错了,这只是在这个场景中的过度杀伤力。@Makoto Quote“对于一般情况…”