从方法收到错误的颜色

时间:2014-09-12 11:13:43

标签: java swing colors return switch-statement

为什么此代码无法正确返回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;
}

4 个答案:

答案 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 casebreak需要退出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;
}