所以我自己学习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是短路的,但是我可以修改我的代码还是应该使用一段时间或类似的东西?
答案 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++;
}