-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

+1

3个单独的'if'条件? – 2013-04-29 06:38:13

+0

请用代码显示:) – 2013-04-29 06:39:45

+1

if(button1)createButton1;如果(button2)createButton2;等等。我不太了解你的问题。 – 2013-04-29 06:40:04

回答

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 
} 
... 

的问题的情况下,订单都ok - 你需要最具体到最具体(如果“只是button1”是第一个,它将“窃取”所有其他依赖于按钮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 
    ... 
} 
1

如果按钮1 =真我应该创建按钮1,如果按钮2 =真我,如果>创建BUTTON2 button3 = true我应该创建button3。

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