英文:
why there is no output in java even after using system.out.println function?
问题
class PrimeTernary {
public static void main(String[] args) {
int i, m;
int n = 8;
m = n / 2;
String result;
if (n == 0 || n == 1)
System.out.println("不是质数");
else
for (i = 2; i <= m; i++) {
result = (n % i == 0) ? "不是质数" : "质数";
System.out.println(result);
}
}
}
代码中的问题是:
- 在输出结果时,应该使用中文字符串,而不是
System.out.println(""Not prime number"");
,应改为System.out.println("不是质数");
。 - 循环应从
i = 2
开始,因为质数定义为大于 1 且只能被 1 和自身整除的数。
以上是你的代码的翻译和修改部分。
英文:
class PrimeTernary {
public static void main(String[] args) {
int i, m;
int n = 8;
m = n / 2;
String result;
if (n == 0 || n == 1)
System.out.println("Not prime number");
else
for (i = 3; i <= m; i++) {
result = (n % i == 0) ? "not prime" : "prime";
System.out.println(result);
}
}
}
what is wrong in my code? Can anyone pleased to explain it in brief?
答案1
得分: 1
即使 n
为 0 或 1(只有在这种情况下你的打印语句才会被执行),那么 m
必定为 0。这意味着 for
循环不会运行。
英文:
Even if n
is 0 or 1 (only then your print statement could ever be reached), then m
is necessarily 0. This means, the for
loop does not run.
答案2
得分: 0
你的 if 条件从不成立,因为 n
总是 8。
if (n == 0 || n == 1)
和 if (8 == 0 || 8 == 1)
是一样的。
所以你的循环永远不会执行。
英文:
Your if condition is never true since n
is always 8.
if (n == 0 || n == 1)
is the same as if (8 == 0 || 8 == 1)
So your loop will never execute.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论