【问题标题】:How to have to bools that both cannot be true at the same time?如何拥有两本书不能同时为真?
【发布时间】:2017-04-17 00:23:10
【问题描述】:

这看起来很简单,但由于某种原因它让我无法理解。 我有两个布尔值和两个返回布尔值的方法。我希望如果 bool1 设置为 true,bool2 将设置为 false,反之亦然。这是代码中的样子。

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

在框架上单击按钮,该方法返回 true。我使用 XOR(^) 的方式使按钮切换真假。

【问题讨论】:

    标签: boolean boolean-logic boolean-expression


    【解决方案1】:

    如果布尔值总是彼此相反,那为什么要使用两个呢?

    假设我们有问题的布尔值是 ballBlueballGreen(在我们的世界中,我们只能有一个或另一个 - 没有红球),对于任何给定的球,只有一个可能是真的,另一个必须为假。

    在这种情况下,我们可以简单地使用ballBlue:如果值为真,那么球一定是蓝色的。如果不是,则暗示该球是绿色的。

    【讨论】:

    • 我使用的方法返回布尔值,我无法更改方法,因为方法必须返回布尔值。如果我可以将这两个布尔值编译为一个,那么您的答案就可以了。可悲的是我不知道怎么做。
    • 也许您可以详细说明函数和布尔值的名称,以便我可以更好地了解您的具体情况?
    • 我更改了问题的摘要,以向您展示这些方法的工作原理。
    • 看起来您可能想要的是单选按钮:一次只能选择一组中的一个按钮。您的 GUI 框架可能会为此提供一个优雅的解决方案。如果不是,请考虑已提出的其他答案。
    • 我的 GUIFramework 对此没有解决方案。另一个答案不起作用。
    【解决方案2】:

    我认为您将需要布尔反转

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

    【讨论】:

    • 那么意味着我仍然没有得到你的问题,你需要根据方法的输出来反对吗?例如 bool1 = method1 是 true ,那么 bool2 必须是 false ,如果这是你想要的,那么我的答案是正确的
    • 好吧,抱歉,我实际上对您的解决方案有不同的问题。如果我使用您的解决方案,两个布尔值不能同时为假。
    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2020-10-10
    • 2018-12-23
    • 2018-11-19
    • 1970-01-01
    相关资源
    最近更新 更多