繁体   English   中英

多条件Java循环

[英]Multiple Conditions Java Loop

因此,我自己学习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 + " ");
        }
    }

这是问题所在:当我在for条件中放入<i&i <b时,该程序无法正常工作。 我已经读过Java在短路,但是我可以修复我的代码还是应该使用一段时间或类似的东西?

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

上面Tim的答案是一个很好的答案,但您还询问是否可以/应该在while循环中这样做。 如果您想使用while循环,一个简单的实现就是

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM