最适合处理多个IF语句

本文关键字:IF 语句 处理 | 更新日期: 2023-09-27 18:28:06

我想知道最好的方法:在我的场景中,用户可以选择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
}

依此类推。

最适合处理多个IF语句

试着编写代码,使其与您试图建模的逻辑紧密相连。为option1所做的选择是否改变了其他选项的含义,还是将它们作为一个组?

您可能会发现引入其他标志(例如exactlyTwoOptionsSelected)非常有用,然后可以在分支中使用这些标志。

顺便说一下,编写if (option1 && option2)if (!option1 || option2)等将比编写if (option1 == true && option2 == true)if(option1 == false || option2 == true)更容易。

这取决于"// Do Somthing"的实际作用。

如果选项之间有一些代码重复,那么将其放入函数中并调用它。或者将重复的代码分离成一个独立的if ( Option1 ) { ... }块。

正如您所提到的,您可以将有效的组合转换为枚举(5位是32个值),并将其放入switch语句中。

我会选择嵌套的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

        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();