//我想显示用户输入的范围内所有可被 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++;
}
}