我在任何地方都找不到如何使用方法?操作员。 只有我所知道的:
boolean something = (!again) ? true : false;
这将返回true或false,但是如果我有if方法带有break?像这样:
if(!again){
break;
}
我也可以这样做吗?操作员?还是您知道更好的方法? 我在while循环中有此方法。
我不知道该说些什么..只是我能找到那个。我几乎到处都在看。谢谢
感谢回复<3
答案 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;
因此,使用?:
运算符编写时会产生负值。