簡體   English   中英

使用“?”運算符的if語句並中斷Java

[英]if statement with “?” operator and break java

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

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

這返回的是真還是假,但是如果我有if方法,可以使用break? 像這樣:

if(!again){
break;
}

我也可以這樣做嗎? 操作員? 還是您知道更好的方法? 我在while循環中有此方法。

我不知道該說些什么..只是我可以找到那個。 我幾乎到處都在看。 謝謝

感謝回復<3

break; 是一個聲明。 在Java中,盡管有些東西(賦值,一元增/減表達式,構造函數調用和方法調用)都同時存在,但通常無法將語句和表達式混合使用。

三元運算符僅適用於表達式。

就這么簡單。 break 不是表達式cond ? a : b的'a'和'b'是cond ? a : b cond ? a : b 必須是表達式。

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

條件運算符用作表達式的一部分。 所以

  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;

因此使用?:運算符編寫時會產生負值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM