为什么此代码无法正确返回Color
?每次使用name="YELLOW"
或name="RED"
执行,都会返回Color.WHITE
。
Color recieveColor(String name)
{
Color color=new Color(255,0,0);
switch(name)
{
case "YELLOW":
{
color=Color.YELLOW;
}
case "RED":
{
color=Color.RED;
}
case "WHITE":
{
color=Color.WHITE;
}
}
return color;
}
答案 0 :(得分:3)
这是因为您没有break
。
如果您的颜色名称不匹配,您也可以使用默认值
switch (name) {
case "YELLOW":
color = Color.YELLOW;
break;
case "RED":
color = Color.RED;
break
case "WHITE":
color = Color.WHITE;
break;
default:
color = Color.YELLOW;
break;
}
答案 1 :(得分:2)
您必须在break
中使用switch case
。 break
需要退出case
。
switch (name) {
case "YELLOW":
color = Color.YELLOW;
break;
case "RED":
color = Color.RED;
break
case "WHITE":
color = Color.WHITE;
break;
}
否则,您将始终拥有白色
Java
switch cases
答案 2 :(得分:0)
那是因为你没有break
;在color
被分配后。
答案 3 :(得分:0)
虽然问题已经回答了几次(使用break
关键字,省略了直播),但我想通过return
为您提供一些建议。这省略了整个问题:“返回”不会出错。
switch (name) {
case "YELLOW":
return Color.YELLOW;
case "RED":
return Color.RED;
case "WHITE":
return Color.WHITE;
default:
return Color.BLACK;
}