我想编写一个从用户读取两个整数的java程序, 然后显示从第一个数字到的所有数字 可被5或6整除的第二个数字,但不能同时为两个。该 输出应显示为每行十个数字。这就是我得到的,但它不起作用..有人可以帮忙吗?
public class Testing {
static int num1;
static int num2;
public static void main(String[] args) {
userInput();
factorial();
}
public static void userInput() {
Scanner sc = new Scanner(System.in);
System.out.println("Enter first number: ");
num1 = sc.nextInt();
System.out.println("Enter second number: ");
num2 = sc.nextInt();
}
public static void factorial() {
int n;
int counter = 0;
for (n = num1; n <= num2; n++) {
if ((n % 5 == 0 && n % 6 != 0) || (n % 6 == 0 && n % 5 != 0)) {
System.out.print(n + " ");
counter = counter++ % 10;
if (counter == 9) {
System.out.println();
}
}
}
}
}
如果我输入这些整数:
Enter first number:
5
Enter second number:
90
程序显示我想要每行10个..
5 6 10 12 15 18 20 24 25 35 36 40 42 45 48 50 54 55 65 66 70 72 75 78 80 84 85
答案 0 :(得分:2)
您的问题是您的计数器变量。由于每行只需10个结果,一旦计数器大于或等于9,你应该用Println()打破这一行,然后确保你的计数器设置回0.见下面的代码:
public static void factorial() {
int n;
int counter = 0;
for (n = num1; n <= num2; n++) {
if ((n % 5 == 0 && n % 6 != 0) || (n % 6 == 0 && n % 5 != 0)) {
System.out.print(n + " ");
counter++;
if (counter >= 9) {
System.out.println();
counter = 0;
}
}
}