我希望从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);
此代码抛出无效表达式。为什么除了表达特殊指令不起作用。请帮助我表达在三元运算符中什么都不做的表达。
答案 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()
始终期望可以打印的内容,例如:String
,int
,byte
等。
但是这里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);