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;
}
你好,我尝试使用此代码为我的作业创建一个迷你货币转换器,但我不明白为什么它不起作用,请告诉我为什么会这样,谢谢。
错误说已经定义了 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;
}