有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法从循环打印“FlimFlam”

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

例如,运行java示例6 应该产生产出 1. 2. 飞行 4. 火焰 飞行

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) 个答案

  1. # 1 楼答案

    问题在于条件。无论是i % 3还是i % 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);
                }
    

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

  2. # 2 楼答案

    以下是完整的代码:

    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);
      }
    

    }