2 回答
TA贡献2039条经验 获得超7个赞
问题出在条件上。由于要么i % 3ori % 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 块中的其余条件。
TA贡献1866条经验 获得超5个赞
这是完整的代码:
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);
}
}
添加回答
举报