-1

我有一个问题,我需要根据一些布尔值创建一些按钮。

如果button1 = true我应该创建button1,如果button2 = true我应该创建button2,如果button3 = true我应该创建button3。

所以可以有8种组合:

1 - button1, button2, button3 (button1 = true, button2 = true, button3 = true)
2 - button1, button2 (button1 = true, button2 = true, button3 = false)
3 - button1, button3
4 - button2, button3
5 - button2, button1
6 - button1
7 - button2
8 - button3

我的问题是如何从 8 个中找到正确的组合。

4

2 回答 2

1

如果 button1 = true 我应该创建 button1,如果 button2 = true 我应该创建 button2,如果 > button3 = true 我应该创建 button3。

您似乎已经编写了完整的伪代码。尝试三个 if 语句。

于 2013-04-29T06:49:34.283 回答
0

不确定问题到底是什么:似乎是编程 101(或为傻瓜编程第 2 页)。显而易见的方法:

if (button1) { createButton1(); }
if (button2) { createButton2(); }
if (button3) { createButton3(); }

如果组合有点复杂,您可能需要单独的语句:

if (button1 && button2 && button3) {
    // create required buttons for case 1
} else if (button1 && button2) {
    // create required buttons for case 2
}
...

问题中案例的顺序是可以的 - 您需要最具体到最不具体(如果“仅按钮 1”是第一个,它将“窃取”依赖按钮 1 的所有其他案例。)

另一种方法是将布尔值编码为 int 并使用开关。如果您可能需要为按钮 4 5 和 6 添加复杂的条件,这可能更具可扩展性

int choice = button1 ? 1 : 0;
choice += button2 ? 2 : 0;
choice += button3 ? 4 : 0;
switch(choice) {
    case 0: break; // no buttons
    case 1: // just button1
    case 2: // just button2
    case 3: // button1 and button2
    ...
}
于 2013-04-29T06:49:23.127 回答