//我想在用户输入的范围内显示所有可被3和4整除的数字和5个数字 每行,但我的代码没有工作。我在第二次犯了一个错误,但我无法弄明白。请帮助我。
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();
}
}
答案 0 :(得分:1)
将您的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
。
答案 1 :(得分: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++;
}
}