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);
}
}
# 1 楼答案
问题在于条件。无论是
i % 3
还是i % 5
首先满足,它都不会达到i % 3 == 0 && i % 5 == 0
条件。因此,必须首先检查i % 3 == 0 && i % 5 == 0
,然后检查其余两个条件以下是修改条件:
编辑:-如果else-if块与第一个出现的条件匹配,则不检查if-else-if块中的其余条件
# 2 楼答案
以下是完整的代码:
}