多条件Java循环

时间:2018-06-12 01:59:43

标签: java

所以我自己学习Java,我想创建一个程序,在给定的区间[A,B]中返回N的除数。这是我的代码

Scanner in = new Scanner(System.in);
        int n, a, b;

System.out.print("A: ");
        a = in.nextInt();

System.out.print("B: ");
    b = in.nextInt();

System.out.print("N: ");
    n = in.nextInt();

System.out.printf("The divisors of %d in the interval [%d, %d] are: ", n, a, b);

    for (int i = 1; i <= n & i < b; ++i){
        if (n % i == 0){
            System.out.println(i + " ");
        }
    }

这就是问题所在:当我把一个&lt;我和我我&lt; b在for条件下,程序不起作用。我已经读过Java是短路的,但是我可以修改我的代码还是应该使用一段时间或类似的东西?

2 个答案:

答案 0 :(得分:1)

Java中的逻辑AND运算符是&&,而不是&,后者是按位 AND运算符。但是,您甚至不需要条件a <= i && i <= b,因为您只需将循环变量初始化为a

for (int i=a; i <= b; ++i) {
    if (n % i == 0) {
        System.out.println("Found divisor: " + i);
    }
}

答案 1 :(得分:0)

蒂姆上面的答案是一个很好的答案,但你也问过你是否可以/应该这样做while循环。如果你想使用while循环,一个简单的实现就是

while (a <= b) {
    if (n % a == 0) {
      System.out.println("Found divisor: " + a);
    }
    a++;
}