2012-08-31 25 views
-1

我有一個問題,我想回答。我正在製作一個需要使用布爾值的應用程序。 這是到目前爲止我的代碼Java中是否存在某種「和」語句?

if (but1 = true){ 
    //Do Something 
} 

但我想使用某種類型的and功能的,所以我可以這樣說

if (but1 = true and but2 = true){ 
    //Do Something  
} 

我宣佈我所有的布爾變量和希望知道是否有任何類型的函數可以讓我支持我需要的這種類型的代碼。 感謝

+0

你有沒有真正嘗試過嗎?這比在這裏問這要快。 – Tchoupi

+1

閱讀[運營商](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html),你將學到這一點以及更多 – KDEx

回答

9

這就是:

if (but1 && but2){ 
    //Do Something  
} 

只是簡單的Java。

+0

+1 - 正確。 – duffymo

+0

是的,但我將如何說,如果but1和but2都等於爲true或false –

+1

那麼你可以使用'!but1'(等同於'but1 == FALSE'或'but1!= TRUE;但更可讀)。 'but1'與'but1 == true'和'but1!= false'完全相同。它非常基本的邏輯:「but1是真正的」當且僅當「but1等於真正的」 ...... –

-2

試試這個:

if (but1 == true && but2 == true) { 
    // do something 
} 
+0

這是正確的,但不地道。不需要'== true' – duffymo

+0

我同意你的看法,只需遵循他的代碼即可。 –

2

我覺得應該這樣寫:

if (but1) { 
    //Do Something  
} 

if (but1 && but2){ 
     //Do Something  
      } 
-1

你不能=比較變量。一個等號用於分配,其中==用於比較。

在Java中,你可以做到以下幾點:

if (a == true && b == true) 
{ 
//do code 
} 
1

邏輯是&。如果第一個參數爲false,則&&將快速評估。例如:

// foo() and bar() will be called 
if (foo() & bar()) { 
} 

// bar() will not be called if foo() returns false 
if (foo() && bar()) { 
} 
+0

'&'是**位運算和**,沒有邏輯的和... – aymeric

+0

'&'也可以在'boolean's使用。檢查[JLS](http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.22.2)。 – martijno

+0

@aymeric你是不正確的,檢查Java語言規範 –

0

好吧,這個問題已經得到了很好的回答,只是讓你知道:

if (but1 = true){ 
    //Do Something 
} 

總是評估爲真,因爲它需要分配給but1

新價值

另外使用'=='運算符對布爾值不需要。

0

& &也是一個短路運營商。如果第一次評估失敗,則不檢查第二次。您可以使用一個&來檢查語句的兩個部分。

例如

if (a() && b()){...} 

不會評價B()如果()爲假。如果你有一個&則B()被評爲即使()是假的

這是相同的或(|和||)

相關問題