为什么Eclipse会给出关于此开关案例结构的中断语句的错误?

时间:2016-04-07 15:43:59

标签: java switch-statement

我在Java程序中创建了这个 switch case 结构,但是Eclipse在所有 break 语句中给我签了错误:

public class LoadPlacesService {

    public String getPlaces(String source, String selval) {

        switch(source) {

        case "country":

            if (selval.equals("italy")) {
                return "<option value='marche'>Marche</option>\n<option value='lazio'>Lazio</option>\n<option value='lombardia'>Lombardia</option>\n<option value='puglia'>Puglia</option>";
            } else {
                return "0";
            }

        break;

        case "region":

            if (selval.equals("lazio")) {
                return "<option value='roma'>Roma</option>\n<option value='viterbo'>Viterbo</option>\n<option value='latina'>Latina</option>\n<option value='rieti'>Rieti</option>\n<option value='frosinone'>Frosinone</option>";
            } else {
                return "0";
            }

        break;

        // eventuali altri case

        case "district": 

            if (selval.equals("roma")) {
                return "<option value='roma'>Roma</option>\n<option value='guidonia-montecelio'>Guidonia Montecelio</option>\n<option value='fiumicino'>Fiumicino</option>\n<option value='aprilia'>Aprilia</option>";
            } else {
                return "0";
            }

        break;


    }
        return "";

    }

}

3 个答案:

答案 0 :(得分:2)

因为在

之前返回而无法访问它们

答案 1 :(得分:1)

这是因为您从每个else子句中的case子句返回。这使得break;语句无法访问。

        } else {
            return "0";  // cause of the problem
        }

答案 2 :(得分:0)

从所有案例中删除break语句。由于您从所有情况返回

,因此不需要它