在 Java 中每行显示五个数字



//我想显示用户输入的范围内所有可被 3 和 4 整除的数字和五个数字每行,但我的代码不起作用。我在第二名犯了一个错误,但我无法弄清楚。请帮助我。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter lowest value:");
    int lowest = input.nextInt();
    System.out.println("Enter upper value:");
    int upper = input.nextInt();
    for(int i = lowest; lowest <= upper; lowest++){
        for(int j = 0; j < 5; j++ ){
            if(lowest % 3 == 0 && lowest % 4 == 0){
                System.out.print(lowest + "  ");
            }
        }
        System.out.println();   
    }
}  

将 for 循环更改为:

for(int i = lowest; i <= upper; i++){
    for(int j = 0; j < 5 && i <= upper; i++){
        if(i % 3 == 0 && i % 4 == 0){
            System.out.print(i + "  ");
            j++;
        }
    }
    System.out.println();
}

您的原始代码存在一些问题。 例如,i从未被使用过。此外,由于i在第二个 for 循环中从未递增,因此相同的值将被打印 5 次。

另一件要提的是,i % 3 == 0 && i % 4 == 0相当于i % 12 == 0

您没有使用最低值,但没有增加最低:)的值。试试这个:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter lowest value:");
    int lowest = input.nextInt();
    System.out.println("Enter upper value:");
    int upper = input.nextInt();
    int printCount = 1;
    while(lowest <= upper){
        if(lowest % 3 == 0 && lowest % 4 == 0){
            System.out.print(lowest + "  "); //print a number divisible by 3,4
            if(printCount%5==0){
                System.out.println();        //when printCount reaches a multiple of 5 i.e. 5,10,15.., print a new line
            }
            printCount++;
        }
        lowest++;
    }
}  

最新更新