2017-07-07 140 views
-2

我正在學習C#並嘗試了此問題。請在下面的問題下面看到我的兩次嘗試,有人可以指出我在哪裏/如何出錯了嗎?謝謝。c#布爾值:如果第一個布爾值爲true並且第二個值爲false,則返回true

嘗試1:
返回真,如果第一布爾值爲true和第二是假的。

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    if (boolean1 = true && (boolean2 = false)) 
    { 
     return true; 
    } 
    return false; 
} 

嘗試2:

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    boolean1 = true; 
    boolean2 = false; 
    return boolean1 && boolean2; 
} 

回答

1

這低於你的嘗試。在檢查boolean1是否爲true時,你說'boolean1設置爲true',你不檢查它是否爲true,對於boolean2是一樣的。

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    if (boolean1 = true && (boolean2 = false)) 
    { 
     return true; 
    } 
    return false; 
} 

我已修復您的代碼,這將工作。

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    if (boolean1 == true && boolean2 == false) 
    { 
     return true; 
    } 
    return false; 
} 

在你的,如果條件你需要添加「==」,而不是僅僅「=」,以檢查它等於要檢查對值。

+0

謝謝。他們都很棒。你給的第二個代碼(我試過的)更自然地是我的想法。儘管第一個代碼更高效,可以這麼說,我需要對此表示理解。說「返回布爾值1」的部分 - 這是否意味着當你寫這個時,你自動告訴計算機boolean1是真的?它是如何工作的? –

+0

當你在學習C#的時候,我個人發現最好先學習先做事情的漫長方式,讓你的頭腦變得圓滑;然後提高效率。 public static bool ReturnTrueAndFalse(bool boolean1,bool boolean2) { return boolean1 &&!boolean2; } 這是做什麼的,它是說'返回boolean1',但我們不能看到'返回布爾值1如果真',所以它做內聯檢查,如果它的真實。然後我們添加其他條件並返回boolean2,如果它不是真的,那麼'!boolean2'。這就是'!'正在做,「如果不是真的(var)'=!boolean2 – Kallen

+0

歡呼的詳盡解釋 –

5

單個=設置一個變量。 你需要使用雙。

此外,您可以稍微重寫一下。

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    return boolean1 && !boolean2; 
} 

如果你想保持它,你擁有它,它會是這樣:

public static bool ReturnTrueAndFalse(bool boolean1, bool boolean2) 
{ 
    if (boolean1 == true && boolean2 == false) 
    { 
     return true; 
    } 

    return false; 
    } 
} 
+0

謝謝。他們都很棒。你給的第二個代碼(我試過的)更自然地是我的想法。儘管第一個代碼更高效,可以這麼說,我需要對此表示理解。說「返回布爾值1」的部分 - 這是否意味着當你寫這個時,你自動告訴計算機boolean1是真的?它是如何工作的? –

+0

return語句將是「true」或「false」。如果你說'return boolean1'和boolean1是'true',則返回值爲true。所以結合它'返回true &&不錯' – Tikkes

相關問題