Gem*_*hna 1 java iteration loops for-loop
我对编码有点陌生,我正在解决一个问题,该问题应该打印变量 L 和 R 之间的所有整数,包括 L,R。但我反复获得所需的输出。我不明白这样做的原因。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int L = sc.nextInt();
int R = sc.nextInt();
for (int i = 0; ; i++) {
if (i >= L && i <= R) {
System.out.print(i + " ");
}
}
}
Run Code Online (Sandbox Code Playgroud)
输入: L=4 ,R=8
输出:4 5 6 7 8 4 5 6 7 8 4 5 6 7 8等等...
你把条件放错了地方,所以你的循环是无限的。
进一步解释一下,由于您的循环没有退出条件,i将永远递增,但到达 后Integer.MAX_VALUE,下一个i++将溢出,因此i将变为负数 ( Integer.MIN_VALUE)。然后它将继续增加,直到它再次达到您希望打印的范围,因此该范围将一次又一次地打印,永远。
正确的循环应该是:
for(int i = L; i <= R; i++) {
System.out.print(i+" ");
}
Run Code Online (Sandbox Code Playgroud)
现在i将从您希望打印的第一个值 ( L) 开始,并在打印您希望打印的最后一个值 ( R)后终止循环。