2017-04-17 34 views
0

這看起來很簡單,但由於某種原因,它逃脫了我。 我有兩個布爾和兩個返回布爾值的方法。我希望如果bool1設置爲true,bool2將被設置爲false,反之亦然。以下是代碼中的外觀。如何讓bools不能同時成立?

bool b1, b2; 
b1 = b1^GUILayout.Button(); 
b2 = b2^GUILayout.Button(); 

在框架上按鈕是單擊該方法返回true。我使用異或(^)的方式使按鈕切換真和假。

回答

0

如果布爾總是彼此相反,那麼爲什麼要使用兩個呢?

說我們有問題的布爾變量是ballBlueballGreen(在我們的世界,我們只能有一個或其他 - 有沒有紅球),對於任何給定的球,只能有一個是真實的,而其他一定是假的。

在這種情況下,我們可以簡單地使用ballBlue:如果值爲true,那麼球必須是藍色的。如果不是,那麼暗示球是綠色的。

+0

我使用返回布爾變量的方法,我不能改變的方法,因爲這些方法必須返回布爾變量。如果我可以將兩個布爾編譯成一個,你的答案就可以工作。可悲的是我不知道如何。 –

+0

也許你可以詳細說明函數和布爾的名字,所以我可以更好地理解你的具體情況? –

+0

我更改了我的問題摘要,向您展示了這些方法的工作原理。 –

0

我想你會需要布爾反轉

b1 = MethodThatReturnsBool1(); 
b2 = (!b1) 

b2 = MethodThatReturnsBool2(); 
b1 = (!b2) 
+0

然後意味着我還沒有得到你的問題,你需要兩個相反取決於方法的輸出權?例如bool1 = method1爲true,那麼bool2必須爲false,如果這是你想要的,那麼我的anwser是正確的 – razzbee

+0

好吧,對不起,我的解決方案其實有一個不同的問題。如果我使用你的解決方案,那麼bools不能同時爲假。 –