通常我会在返回特定对象的方法中实现switch case。如下所示:
private string testing(string input){
switch(input)
{
case "a":
{
....
return "TestingResult";
}
case "b":
{
....
return "TestingResultB";
}
default:
return null;
}
}
现在我想知道是否可以为分配值编写一个开关案例?如下所示:
private string testing(string input){
string TEST="";
switch(input)
{
case "a":
{
....
TEST = "TestingResult";
}
case "b":
{
....
TEST = "TestingResultB";
}
default:
}
return TEST;
}
原因可以通过简单的If-Else语句来实现,这个问题让我了解更多切换案例的功能
当然,在测试之后,我收到错误
control cannot fall through from one case label('case: "a"') to another
答案 0 :(得分:5)
您需要在每种情况下添加break;
private string testing(string input){
string TEST="";
switch(input)
{
case "a":
TEST = "TestingResult";
break;
case "b":
TEST = "TestingResultB";
break;
default:
}
return TEST;
}
正如其他人所说,每个案例中的大括号都是不必要的。
答案 1 :(得分:4)
是的,你可以。您必须记住在每个{{1}之后添加某种类型的“跳转”语句(包括break
,goto case
,return
或throw
) } label:
case
注意,此处的大括号是不必要的,并且在此构造中不需要默认值,因为如果它与任何情况都不匹配,它将通过开关块落下。
进一步阅读
答案 2 :(得分:1)
你所写的内容是完全合法的,但除非你在返回之前继续进行并进行一些进一步的操作,否则没有必要进行值赋值。
帮助您更熟练地使用切换/案例陈述: