编写一个Java函数,该函数接受整数n
作为输入,并输出从1
到n
的整数字符串,其中每个4的倍数都被替换为“ Hello”,将每个5的倍数替换为“ Wonderful”,将每个7的倍数替换为“ World”。
package Multiple;
import java.util.Scanner;
public class MultipleList {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.print("Enter an integer number: ");
int n = reader.nextInt();
for (int i = 1; i <= n; i++) {
// Checking if the integer is a multiple of 4
if ((i % 4) == 0) {
// print
System.out.println("Hello");
}
// Checking if the integer is a multiple of 5.
if ((i % 5) == 0) {
// print
System.out.println("Wonderful");
}
// Checking if the integer is a multiple of 7.
if ((i % 7) == 0) {
// print
System.out.println("World");
}
System.out.println(i);
}
}
}
例如,当我放置n = 7
时,我期望输出“ 1、2、3,Hello,Wonderful,6,World”,但实际输出是“ 1、2、3,Hello,4” ,Wonderful,6,World,7“。
答案 0 :(得分:3)
您必须这样做:
if ((i % 4) == 0) {
System.out.println("Hello");
} else if ((i % 5) == 0) {
System.out.println("Wonderful");
} else if ((i % 7) == 0) {
System.out.println("World");
} else {
System.out.println(i);
}
答案 1 :(得分:0)
您最后的打印语句,无条件
System.out.println(i);
仅应在先前没有为此特定值i
打印任何内容时执行。
有两种方法可以解决此问题; (1)以蛮横的方式,在声明之前说“如果这不是4的倍数,不是5的倍数而不是7的倍数”,以及(2)跟踪您是否打印了任何东西。我更喜欢第二种方法。
不过,我认为这对您提供确切的代码很有用,因此在此我没有这样做。
答案 2 :(得分:0)
您可以更改 如果(n!= i) Syso(i)
代替system.out.println(i);的行尾