"切换语句贯穿是我爱switch与if/else if构造的个人主要原因之一。一个例子是为了在这里:
static string NumberToWords(int number)
{
string[] numbers = new string[]
{ """", ""one"", ""two"", ""three"", ""four"", ""five"",
""six"", ""seven"", ""eight"", ""nine"" };
string[] tens = new string[]
{ """", """", ""twenty"", ""thirty"", ""forty"", ""fifty"",
""sixty"", ""seventy"", ""eighty"", ""ninety"" };
string[] teens = new string[]
{ ""ten"", ""eleven"", ""twelve"", ""thirteen"", ""fourteen"", ""fifteen"",
""sixteen"", ""seventeen"", ""eighteen"", ""nineteen"" };
string ans = """";
switch (number.ToString().Length)
{
case 3:
ans += string.Format(""{0} hundred and "", numbers[number / 100]);
case 2:
int t = (number / 10) % 10;
if (t == 1)
{
ans += teens[number % 10];
break;
}
else if (t > 1)
ans += string.Format(""{0}-"", tens[t]);
case 1:
int o = number % 10;
ans += numbers[o];
break;
default:
throw new ArgumentException(""number"");
}
return ans;
}
聪明的人是因为string[]应该在功能之外被宣布而c然心动的:他们是,这只是一个例子。
编译器失败,出现以下错误:
控制不能从一个案例标签(“案例3:”)到另一个案例标签
控制不能从一个案例标签(“案例2:”)到另一个案例标签
为什么?有没有办法得到这种行为没有三个if?"
相似问题