【问题标题】:Exiting the method from a ternary operator从三元运算符退出方法
【发布时间】:2021-10-11 12:42:13
【问题描述】:

所以在我的一个方法中,我正在调用另一个名为foo() 的方法,并希望使用三元运算符根据foo() 返回的内容编写一个速记if 语句。这是foo() 方法:

public boolean foo(String s){
  if (!s.contentEquals("")){
    System.out.println(s);
    return true;
  }
  return false;
}

我想使用返回值为foo()的三元运算符的情况如下:

(...)
boolean bool = foo("abc") ? null : return;
(...)

如果foo()返回true,我基本上希望该方法什么都不做并继续运行,如果返回false则退出。

有没有办法使用三元运算符来实现这一点?

【问题讨论】:

  • 只需使用if/else
  • IMO ick(即使它有效)。 if (!foo("abc")) return; 不要让人想那么多。
  • @DaveNewton 什么是“IMO ick”?
  • @Unmitigated 我知道我可以使用 if/else,我想知道是否可以使用三元运算符。因此问题
  • @LucasB.Bahadir 不,你不能用三元运算符来做。

标签: java return conditional-operator


【解决方案1】:

条件运算符(“具有三个操作数的运算符”是`一种愚蠢的描述方式)是an operator,它的三个操作数都需要是表达式。

“return”不是表达式,它是a statement,因此不能用于需要表达式的地方。

另外,包含条件运算符的表达式的结果本身就是一个表达式,不能用在需要语句的地方。

表达式和语句在 Java 中是不同的实体。

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 2013-04-29
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2013-08-27
    • 2021-08-20
    相关资源
    最近更新 更多