Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将If转换为Switch语句_C#_If Statement_Switch Statement_Case - Fatal编程技术网

C# 将If转换为Switch语句

C# 将If转换为Switch语句,c#,if-statement,switch-statement,case,C#,If Statement,Switch Statement,Case,我一直在尝试将If-Else语句转换为switch,但它给出了一个错误,即它需要一个常量: 以下是我一直在研究的代码: using System; namespace ConsoleApplication6 { class Program { static void Main() { String me; int ME = 0, YOU = 5, THEY = 20, THEM = 30;

我一直在尝试将If-Else语句转换为switch,但它给出了一个错误,即它需要一个常量:

以下是我一直在研究的代码:

using System;

namespace ConsoleApplication6

{
    class Program
    {
        static void Main()
        {
            String me;
            int ME = 0, YOU = 5, THEY = 20, THEM = 30;
            Console.WriteLine("Default Values: YOU = 5, THEY = 20 and THEM = 30\nValue for \"ME\" >>");
            me = Console.ReadLine();
            ME = Int16.Parse(me);

            switch(true) {
                case (ME > 0 && ME < 12) :  
                 YOU = ME;
                 Console.WriteLine("Value of YOU is {0}", YOU);
                 break;

                case ( ME == 15):
                YOU = THEY * THEM;
                Console.WriteLine("Value of YOU is {0}", YOU);
                break;

                case (ME == 20):
                YOU++;
                Console.WriteLine("Value of YOU is {0}", YOU);
                break;

                case (ME == 17):
                YOU = YOU - 4;
                Console.WriteLine("Value of YOU is {0}", YOU);
                break;

                default:
                Console.WriteLine("You've entered {0}", ME);
                Console.WriteLine("Value of YOU is {0}", YOU);
                break;


           }
            Console.WriteLine("Press Enter to EXIT");
            Console.ReadLine();

        }

    }
}
使用系统;
命名空间控制台应用程序6
{
班级计划
{
静态void Main()
{
把我捆起来;
int ME=0,YOU=5,他们=20,他们=30;
WriteLine(“默认值:YOU=5,它们=20,它们=30\n表示\“ME\”>>”;
me=Console.ReadLine();
ME=Int16.Parse(ME);
开关(真){
情况(ME>0&&ME<12):
你=我;
WriteLine(“YOU的值是{0}”,YOU);
打破
案例(ME==15):
你=他们*他们;
WriteLine(“YOU的值是{0}”,YOU);
打破
案例(ME==20):
你++;
WriteLine(“YOU的值是{0}”,YOU);
打破
案例(ME==17):
你=你-4;
WriteLine(“YOU的值是{0}”,YOU);
打破
违约:
WriteLine(“您输入了{0}”,我);
WriteLine(“YOU的值是{0}”,YOU);
打破
}
控制台写入线(“按回车键退出”);
Console.ReadLine();
}
}
}
以下是我试图转换的内容:

using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main()
        {
            String me;
            int ME = 0, YOU = 5, THEY = 20, THEM = 30;
            Console.WriteLine("Default Values: YOU = 5, THEY = 20 and THEM = 30\nValue for \"ME\" >>");
            me = Console.ReadLine();
            ME = Int16.Parse(me);

            if (0 < ME && ME < 12)
            {
                YOU = ME;
                Console.WriteLine("Value of YOU is {0}", YOU);
            }
            else if( ME == 15)
            {
                YOU = THEY * THEM;
                Console.WriteLine("Value of YOU is {0}", YOU);
            }

            else if (ME == 20)
            {
                YOU++;
                Console.WriteLine("Value of YOU is {0}", YOU);
            }

            else if (ME == 17)
            {
                YOU = YOU - 4;
                Console.WriteLine("Value of YOU is {0}", YOU);
            }

            else
            {
                Console.WriteLine("You've entered {0}", ME);
                Console.WriteLine("Value of YOU is {0}", YOU);

            }
            Console.WriteLine("Press Enter to EXIT");
            Console.ReadLine();

        }

    }
}
使用系统;
命名空间控制台应用程序5
{
班级计划
{
静态void Main()
{
把我捆起来;
int ME=0,YOU=5,他们=20,他们=30;
WriteLine(“默认值:YOU=5,它们=20,它们=30\n表示\“ME\”>>”;
me=Console.ReadLine();
ME=Int16.Parse(ME);
if(0
我想你需要先了解开关。该开关应用于变量,在本例中为“ME”。此外,开关盒不能有“范围”条目,只能有“精确”条目。因此,您的代码将如下所示:

String me;
int ME = 0, YOU = 5, THEY = 20, THEM = 30;
Console.WriteLine("Default Values: YOU = 5, THEY = 20 and THEM = 30\nValue for \"ME\" >>");
me = Console.ReadLine();
ME = Int16.Parse(me);

if ((0 > ME) && (ME < 12))
{
    YOU = ME;
    Console.WriteLine("Value of YOU is {0}", YOU);
}
else 
{
    switch (ME)
    {
        case 15:
            YOU = THEY * THEM;
            break;
        case 20:
            YOU++;
            break;
        case 17:
            YOU = YOU - 4;
            break;
        default:        
            break;
    }

    Console.WriteLine("You've entered {0}", ME);
    Console.WriteLine("Value of YOU is {0}", YOU);
}
Console.WriteLine("Press Enter to EXIT");
Console.ReadLine();

我想你需要先了解一个开关。该开关应用于变量,在本例中为“ME”。此外,开关盒不能有“范围”条目,只能有“精确”条目。因此,您的代码将如下所示:

String me;
int ME = 0, YOU = 5, THEY = 20, THEM = 30;
Console.WriteLine("Default Values: YOU = 5, THEY = 20 and THEM = 30\nValue for \"ME\" >>");
me = Console.ReadLine();
ME = Int16.Parse(me);

if ((0 > ME) && (ME < 12))
{
    YOU = ME;
    Console.WriteLine("Value of YOU is {0}", YOU);
}
else 
{
    switch (ME)
    {
        case 15:
            YOU = THEY * THEM;
            break;
        case 20:
            YOU++;
            break;
        case 17:
            YOU = YOU - 4;
            break;
        default:        
            break;
    }

    Console.WriteLine("You've entered {0}", ME);
    Console.WriteLine("Value of YOU is {0}", YOU);
}
Console.WriteLine("Press Enter to EXIT");
Console.ReadLine();

请不要在问题中使用
(尽快需要帮助!)
。我们可以看到您需要帮助,这是显而易见的,因为您正在发布一个问题,就
ASAP
而言,这不是我们的问题。取决于你问题的质量,你迟早会得到答案的。改变它没有多大意义,是吗?也许是因为可读性的原因,但其他一切都是一样的。正如PoweRoy提到的,您需要首先理解switch语句。如果你事后仍然认为你需要重构你的代码,你应该看看“真正的”重构模式,就像我真的没有发现任何问题一样。。。这对我来说很好。。。。你能再解释一下你的问题吗?请不要在你的问题中使用
(需要帮助!)
。我们可以看到您需要帮助,这是显而易见的,因为您正在发布一个问题,就
ASAP
而言,这不是我们的问题。取决于你问题的质量,你迟早会得到答案的。改变它没有多大意义,是吗?也许是因为可读性的原因,但其他一切都是一样的。正如PoweRoy提到的,您需要首先理解switch语句。如果你事后仍然认为你需要重构你的代码,你应该看看“真正的”重构模式,就像我真的没有发现任何问题一样。。。这对我来说很好。。。。你能再解释一下你的问题吗?但我的教授想以防万一。(对不起,我是新来的。)重复案例20:第一次做两次,第二次打破@贾斯珀你说他“希望一切都是为了以防万一”是什么意思?您必须有一个变量来打开
。所以它必须在
switch()
@PoweRoy(00,MEYeah在你发布之前发现并更新了答案:)但我的教授希望这一切都是为了以防万一。(对不起,我是新来的。)重复案例20:第一次做两次,第二次打破@贾斯珀你说他“希望一切都是为了以防万一”是什么意思?您必须有一个变量来打开
。所以它必须在
开关中()
@PoweRoy(00,而MEYeah在你发布之前刚刚发现并更新了答案:)