【问题标题】:Continue or break did not work in ternary operator [duplicate]继续或中断在三元运算符中不起作用[重复]
【发布时间】:2015-07-14 20:10:23
【问题描述】:

我想显示从 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);

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

【问题讨论】:

  • 你试过空字符串吗? System.out.print(i%5==0?i:"");
  • 我将此标记为重复,因为太多人认为ternary 运算符只是编写if-else 语句的另一种方式。这不是真的,你不应该试图在任何地方硬塞它。阅读副本的接受答案以了解有关三元运算符的全部真相。

标签: java loops while-loop break continue


【解决方案1】:

三元运算符需要(在这种情况下)一个字符串,因此为了满足您的需要,如果条件为假,您必须打印一个空的String

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

【讨论】:

    【解决方案2】:

    只使用一个空字符串

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

    【讨论】:

      【解决方案3】:

      System.out.println() 的问题。由于System.out.println() 总是期待可以打印的东西,例如-Stringintbyte 等。

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

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

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

      【讨论】:

        【解决方案4】:

        您不能返回关键字!即使这确实有效,您仍然会将其传递给System.out.print,所以您是否希望打印一个空格/0 长度的字符串?

        这是等价的:

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

        【讨论】:

          【解决方案5】:

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

          三元运算符可以被认为是一个条件赋值。在你的情况下,continue 你没有分配任何东西(给System.out.print() 的参数)

          您可以简单地使用"" 而不是" ",您将获得预期的输出

          【讨论】:

            【解决方案6】:

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

            但我认为改用“if”会更简洁: if (i%5 == 0) System.out.println("" + i);

            【讨论】:

            • 你的例子行不通。三元运算符不是 if 的替代品,例如这个问题就证明了这一点。
            • @Kayaman 你是对的。对不起。我会编辑我的答案。 (被 C 宠坏了 ;-)
            猜你喜欢
            • 2020-03-13
            • 1970-01-01
            • 2016-03-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-28
            • 2011-08-30
            • 1970-01-01
            相关资源
            最近更新 更多