继续或中断在三元运算符

时间:2015-05-05 07:51:16

标签: java loops while-loop break continue

我希望从0到30显示5的倍数,但不使用普通逻辑。尝试使用三元运算符来显示结果。

     int i=0;
     while(++i<=30)
     System.out.print(i%5==0?i:" ");

输出

      5    10    15    20    25   

我不想要打印任何空格,而是打印在&#34; &#34;在上面的代码中,我尝试使用continue语句来继续循环,但它没有用。

 System.out.print(i%5==0?i:continue);

此代码抛出无效表达式。为什么除了表达特殊指令不起作用。请帮助我表达在三元运算符中什么都不做的表达。

6 个答案:

答案 0 :(得分:1)

三元运算符期望(在本例中)一个字符串,因此为了满足您的需要,如果条件为假,则必须打印空String

 System.out.print(i%5==0?i:"");

答案 1 :(得分:1)

只需使用空字符串

System.out.print(i%5==0?i:"");

答案 2 :(得分:0)

因为System.out.print(continue)无效。检查java tutorials条件运算符的工作原理。

三元运算符可以被认为是条件赋值。在您的情况下,使用continue您没有分配任何内容(System.out.print()的参数)

您只需使用""代替" "即可获得预期的输出

答案 3 :(得分:0)

您无法返回关键字!即使这确实有效,你仍然会把它传递给System.out.print所以你希望打印一个空格/ 0长度的字符串吗?

这相当于:

System.out.print(i%5 == 0 ? "" + i : "");

答案 4 :(得分:0)

System.out.println()的问题。由于System.out.println()始终期望可以打印的内容,例如:Stringintbyte等。

但是这里continue是一个管理程序控制流程的语句,并且没有返回任何内容。

在此上下文中,您不需要添加continue语句,因为流程会自动执行您期望的操作。既然你想避免空间,那么你可以这样做 -

int i=0;
while(++i<=30)
   System.out.print(i%5==0?i : "");

答案 5 :(得分:-1)

你需要一个println()方法的参数,而不是一个指令。

但我认为使用“if”更清晰: if (i%5 == 0) System.out.println("" + i);