如果带有“?”的语句运算符并中断Java

时间:2019-02-20 00:18:09

标签: java eclipse if-statement

我在任何地方都找不到如何使用方法?操作员。 只有我所知道的:

boolean something = (!again) ? true : false;

这将返回true或false,但是如果我有if方法带有break?像这样:

if(!again){
break;
}

我也可以这样做吗?操作员?还是您知道更好的方法? 我在while循环中有此方法。

我不知道该说些什么..只是我能找到那个。我几乎到处都在看。谢谢

感谢回复<3

2 个答案:

答案 0 :(得分:1)

break;是一个声明。在Java中,尽管有些东西(赋值,一元递增/递减表达式,构造函数调用和方法调用)都同时存在,但通常无法将语句和表达式混合使用。

三元运算符仅适用于表达式。

就这么简单。 break 不是表达式,并且cond ? a : b中的'a'和'b'必须是表达式。

if (!again) break;是唯一的方法。

答案 1 :(得分:1)

条件运算符用作表达式的一部分。所以

  x ? y : z

是一个表达式。您可以在需要表达式的任何地方使用它。但是,

  if (some_condition) some_action;

陈述,通常来说,表达式和语句不可互换。因此,如果您试图摆脱if语句,则无法使用?:

另一方面,some_condition是一个(布尔)表达式,因此您可以可以编写:

 if (x ? y : z) some_action;

只要x,y,z本身是布尔子表达式。因此,按照您的原始说法,这是合法的:

if (!again ? true : false)
     break;

但这是多余的,并且减少到

 if (!again)
     break;

因此,使用?:运算符编写时会产生负值。