簡體   English   中英

如何檢查Java中的所有布爾值是真還是假?

[英]How to check if all boolean are true or false in Java?

我試圖弄清楚如何檢查三個變量是全部為真還是全部為假。 因此,當這些變量具有相同的值時,條件變為真;當它們不具有相同的值時,條件變為假。 我認為像(d == e == f)這樣的東西會在這里幫助我,但只有當所有變量都設置為 true 時,條件才為 true。 但是當它們設置為 false 時,條件不起作用。 誰能向我解釋為什么? 我知道一個非常基本的問題,但我自己真的無法弄清楚。

你可以這樣嘗試:

if((d && e && f) || (!d && !e && !f))

它將進入循環,要么全部為真,要么全部為假。

這是因為所有具有關系運算符的表達式都返回布爾值。

因此,首先評估 e == f。 由於這兩個都是假的(兩個運算符具有相同的值),所以這個表達式返回真值。 這個真值是根據 d 來評估的,而 d 是假的。 因此該表達式返回 false(因為兩個運算符現在具有不同的值)。

要知道這3個變量是全真還是全假; 這是你可以做的:

boolean allTrue, allFalse;

if(a && b && c) allTrue = true;  //a, b & c will evaluate to boolean and if all three vars are true the condition will be true and hence the if statement will be accessed
if(!a && !b && !c) allFalse = true; //if the not of the 3 is true, i.e (the 3 boolean vars are false), the whole condtion will be true and the if-statement will be accessed and the allFalse will be set to true means all 3 are false
boolean allTrue=false;
boolean allFalse=false;

boolean a,b,c;//your three variables
if(a && b && c)
{allTrue=true;}
else if(!a && !b && !c)
 {allFalse=true;}

試試這個,這里我有兩個變量標志,它們最初設置為 false,當其中一個條件為 true 時,只有它會被設置為 true,所以在最后一行代碼之后,您可以檢查 allFalse 或 allTrue 的值是否為 true 或 false .

先分別想一下條件:

boolean allTrue = a && b && c;
boolean allFalse = !(a||b||c);

然后組合它們:

boolean eitherAllTrueOrAllFalse = allTrue|allFalse;

應該可以像這樣更接近原始公式:

boolean eitherAllTrueOrAllFalse = (d == e) && (d == f)

如果你只需要知道是真還是假,那么這已經綽綽有余了:

boolean flagAllTrue = a && b && c;

無需使用if else

讓總和 = 0;

總和 += 一個? 1:0; 總和 += b ? 1:0; 總和 += c ? 1:0;

讓 allTrueOrAllFalse = ( sum === 0 || sum === 3 );

暫無
暫無

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

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