如何从打印清单中删除不需要的物品?

时间:2019-11-11 17:14:33

标签: java math

编写一个Java函数,该函数接受整数n作为输入,并输出从1n的整数字符串,其中每个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“。

3 个答案:

答案 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);的行尾