继续或中断在三元运算符中不起作用
Continue or break did not work in ternary operator
我想显示从 0 到 30 的 5 的倍数,但不使用正常逻辑。尝试使用三元运算符显示结果。
int i=0;
while(++i<=30)
System.out.print(i%5==0?i:" ");
输出
5 10 15 20 25
我不想打印任何空格,所以在上面的代码中,我尝试使用 continue 语句来继续循环,但没有成功。
System.out.print(i%5==0?i:continue);
此代码抛出无效表达式。为什么除了表达式之外的特殊说明不起作用。请帮助我给出在三元运算符中什么都不做的表达式。
三元运算符需要(在这种情况下)一个字符串,因此要满足您的需求,您必须打印一个空 String
如果条件为假:
System.out.print(i%5==0?i:"");
因为 System.out.print(continue)
无效。检查 java tutorials 条件运算符的工作原理。
三元运算符可以认为是条件赋值。在你的情况下,continue
你没有分配任何东西(给 System.out.print()
的参数)
您可以简单地使用 ""
而不是 " "
,您将获得预期的输出
您不能return关键字!即使这确实有效,您仍会将其传递给 System.out.print
那么您是否希望打印 space/0-length 字符串?
这相当于:
System.out.print(i%5 == 0 ? "" + i : "");
只需使用一个空字符串
System.out.print(i%5==0?i:"");
您需要 println() 方法的参数,而不是指令。
但我认为使用 "if" 更简洁:
if (i%5 == 0)
System.out.println("" + i);
System.out.println()
的问题。因为 System.out.println()
总是期望可以打印的东西,例如 - String
、int
、byte
等
但是这里continue
是一个管理程序控制流的语句,returns什么也没有。
在此上下文中,您无需添加 continue
语句,因为流程会自动执行您期望的操作。既然你想避免 space 那么你可以这样做 -
int i=0;
while(++i<=30)
System.out.print(i%5==0?i : "");
我想显示从 0 到 30 的 5 的倍数,但不使用正常逻辑。尝试使用三元运算符显示结果。
int i=0;
while(++i<=30)
System.out.print(i%5==0?i:" ");
输出
5 10 15 20 25
我不想打印任何空格,所以在上面的代码中,我尝试使用 continue 语句来继续循环,但没有成功。
System.out.print(i%5==0?i:continue);
此代码抛出无效表达式。为什么除了表达式之外的特殊说明不起作用。请帮助我给出在三元运算符中什么都不做的表达式。
三元运算符需要(在这种情况下)一个字符串,因此要满足您的需求,您必须打印一个空 String
如果条件为假:
System.out.print(i%5==0?i:"");
因为 System.out.print(continue)
无效。检查 java tutorials 条件运算符的工作原理。
三元运算符可以认为是条件赋值。在你的情况下,continue
你没有分配任何东西(给 System.out.print()
的参数)
您可以简单地使用 ""
而不是 " "
,您将获得预期的输出
您不能return关键字!即使这确实有效,您仍会将其传递给 System.out.print
那么您是否希望打印 space/0-length 字符串?
这相当于:
System.out.print(i%5 == 0 ? "" + i : "");
只需使用一个空字符串
System.out.print(i%5==0?i:"");
您需要 println() 方法的参数,而不是指令。
但我认为使用 "if" 更简洁:
if (i%5 == 0)
System.out.println("" + i);
System.out.println()
的问题。因为 System.out.println()
总是期望可以打印的东西,例如 - String
、int
、byte
等
但是这里continue
是一个管理程序控制流的语句,returns什么也没有。
在此上下文中,您无需添加 continue
语句,因为流程会自动执行您期望的操作。既然你想避免 space 那么你可以这样做 -
int i=0;
while(++i<=30)
System.out.print(i%5==0?i : "");