开发者社区> 问答> 正文

无法从循环中打印“ FlimFlam”

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

例如,运行java Example 6应该产生输出1 2 Flim 4 Flam 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); } }

展开
收起
小六码奴 2019-10-03 19:33:29 740 0
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);
            }
    

    编辑: -if-else-if块就像第一个出现的条件中的任何一个匹配,请勿检查if-else-if块中的其余条件。

    2019-10-09 16:25:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载