无法从循环中打印“ FlimFlam”

时间:2019-10-03 05:58:47

标签: java

编写一个程序来执行以下任务。 •从命令行获取单个整数参数n。 •打印出从1到n的整数,每行一个,除了3的倍数,打印“ Flim”代替数字,并打印5的倍数,打印“ Flam”代替数字。对于3和的倍数 5,打印“ FlimFlam”。

例如,运行Java示例6 应该产生输出 1个 2 Flim 4 火焰 Flim

class Example {
    public static void main (String argv[]) {
        if (argv.length != 1)
        usage();
        int n = 0;
        try {
        n = Integer.parseInt(argv[0]);
        } catch (NumberFormatException e) {
        usage();
        }
        for (int i = 1; i <= n; i++)
            if (i % 3 == 0) {
                System.out.println("Flim");
            } else if (i % 5 == 0) {
                System.out.println("Flam");
            } else if (i % 3 == 0 && i % 5 == 0){
                System.out.println("FlimFlam");
            } else {
                System.out.println(i);
        }
  }

  private static void usage() {
    System.err.println("usage: java Example count string");
    System.exit(1);
  }
}

2 个答案:

答案 0 :(得分:3)

问题出在条件上。由于i % 3i % 5首先满足时,它永远不会达到i % 3 == 0 && i % 5 == 0的状态。因此,您必须首先检查i % 3 == 0 && i % 5 == 0,然后检查其余两个条件。

以下为修改条件:

            if (i % 3 == 0 && i % 5 == 0){
                System.out.println("FlimFlam");
            } else if (i % 3 == 0) {
                System.out.println("Flim");
            } else if (i % 5 == 0) {
                System.out.println("Flam");
            }  else {
                System.out.println(i);
            }

编辑:-如果if-else-if块与任何第一个出现的条件都匹配,则不要检查if-else-if块中的其余条件。

答案 1 :(得分:0)

这是完整的代码:

public class Example {

public static void main(String argv[]) {
    if (argv.length != 1)
        usage();
        int n = 0;
        try {
        n = Integer.parseInt(argv[0]);
        } catch (NumberFormatException e) {
        usage();
        }
        for (int i = 1; i <= n; i++)
            if (i % 3 == 0) {
                if(i % 5 == 0) {
                    System.out.println("FlimFlam");
                }
                 System.out.println("Flim");
            } else if (i % 5 == 0) {
                System.out.println("Flam");
            } else {
                System.out.println(i);
        }
}

private static void usage() {
    System.err.println("usage: java Example count string");
    System.exit(1);
  }

}