c# switch 函数错误,可能是对格式的误解?

c# switch function error, maybe a misunderstanding of the format?

你好,我尝试使用此代码为我的作业创建一个迷你货币转换器,但我不明白为什么它不起作用,请告诉我为什么会这样,谢谢。

错误说已经定义了 newValue。

switch (userCurrency)
                {
                    case "USD":
                        double newValue = userEuro * usd;
                        break;

                    case "GBP":
                        double newValue = userEuro * gbp;
                        break;

                    case "CHF":
                        double newValue = userEuro * chf;
                        break;

                    case "AUD":
                        double newValue = userEuro * aud;
                        break;

                    case "CAD":
                        double newValue = userEuro * cad;
                        break;
                    default:
                        Console.WriteLine("Invalid input!");
                        break;

                }

而不是在每个 case 中声明 newValue:在 switch 上方声明一次(不赋值),然后在每个 case 中赋值.

或者可以改用“切换表达式”。

在 switch 语句之前定义“newValue”:

double newValue;
switch (userCurrency)
{
   case "USD":
     newValue = userEuro * usd;
   break;
...

提取 switch case 块范围之外的 newValue 声明,然后在不同的 switch cases 中分配它

double newValue;
switch (userCurrency)
{
    case "USD":
       newValue = userEuro * usd;
       break;

    case "GBP":
        newValue = userEuro * gbp;
        break;

    case "CHF":
        newValue = userEuro * chf;
        break;

    case "AUD":
        newValue = userEuro * aud;
        break;

    case "CAD":
        newValue = userEuro * cad;
        break;
    default:
        Console.WriteLine("Invalid input!");
        break;
}