我想知道最好的方法:在我的场景中,用户可以选择1到5个选项,具体取决于他们在三者之间随机选择的选项。
假设用户有选项2和3选择,我可以写一个IF语句说当它被选中时执行此操作等,问题是我不想为所有可能的组合编写IF语句。
想知道最简单的方法是什么?
我猜想我可以使用Switch,但这又会涉及编写每个组合的编程。
感谢。
编辑:一个小例子的代码
bool Option1 = false;
bool Option2 = false;
bool Option3 = false;
if (Option1 == true && Option2 == false && Option3 == false)
{
//Do Somthing
}
else if (Option1 == true && Option2 == true && Option3 == false)
{
//Do Somthing
}
else if (Option1 == true && Option2 == false && Option3 == true )
{
//Do Somthing
}
等等..
答案 0 :(得分:4)
这取决于"// Do Somthing"
实际做了什么。
如果选项之间存在一些代码重复,则将其放入函数中并调用它。或者将重复的代码分成独立的if ( Option1 ) { ... }
块。
正如您所提到的,您可以将有效组合转换为枚举(5位是32个值)并将其放在switch语句中。
答案 1 :(得分:4)
我会去嵌套if。如果它变得太难以理解,你总是可以将它们分组:
if( option1 )
{
if ( option2 )
{
if ( option3 )
{
doThing2();
}
else
{
doThing1(); // no more alternatives
}
}
else
{
doThing1(); // need to do the same as above
}
}
else
{
... more or less the same as above
}
我认为这就是它的意图。使用优秀的编辑器,它变得易于阅读......
HTH
MNario
答案 2 :(得分:3)
尝试编写代码,使其与您尝试建模的逻辑紧密相关。 option1
的选择是否会改变其他选项的含义,或者它们是否都被视为一个组?
您可能会发现引入其他标志(例如exactlyTwoOptionsSelected
)非常有用,然后您可以在分支中使用它们。
顺便说一下,写if (option1 && option2)
或if (!option1 || option2)
等比if (option1 == true && option2 == true)
和if(option1 == false || option2 == true)
更容易使用。
答案 3 :(得分:0)
Console.WriteLine("Enter first number: ");
int first = int.Parse(Console.ReadLine());
Console.WriteLine("Enter second number: ");
int second = int.Parse(Console.ReadLine());
if (first % second == 0)
{
Console.WriteLine("Number 1 is multiple of number 2.");
}
else if (second % first == 0)
{
Console.WriteLine("Number 2 is multiple of number 1.");
}
else
{
Console.WriteLine("Numbers are not multiples.");
}
Console.ReadKey();