Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Switch语句在嵌套类型中失败_Java - Fatal编程技术网

Java Switch语句在嵌套类型中失败

Java Switch语句在嵌套类型中失败,java,Java,我有以下开关: 我的groupPosition为0,childPosition为1: switch (groupPosition) { case 0: switch (childPosition) { case 0: if (NetworkManager.isNetworkAvailable(this)) {

我有以下开关:

我的groupPosition为0,childPosition为1:

switch (groupPosition) {
            case 0:
                switch (childPosition) {
                    case 0:
                        if (NetworkManager.isNetworkAvailable(this)) {
                            new UserAwayTask().execute();
                        } else
                            Toast.makeText(this, "Network not available", Toast.LENGTH_LONG).show();
                        break;

                    case 1:
                        selection = null;
                        selectionArgs = null;
                        break;
                    case 2:
                        selection = Employee.COL_COUNTRY + " IS ? COLLATE NOCASE";
                        selectionArgs = new String[]{valueReceived};
                }
            case 1:
                selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
                selectionArgs = new String[]{valueReceived};
                break;
            case 2:
                empIDList = GetAllTeamLeaders.teamLeaders(this, TeamLeader.COL_TEAMMEMBERID, TeamLeader.COL_TEAMLEADERNAME + " IS ? ", new String[]{valueReceived});
                selection = Employee.COL_EMPID + " IN (" + TextUtils.join(",", Collections.nCopies(empIDList.size(), "?")) + ")";
                selectionArgs = empIDList.toArray(new String[empIDList.size()]);
                break;
        }
但每次我的选择是:系是?整理NOCASE 选择参数来自外部开关的情况1

因此:

 case 1:
                selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
                selectionArgs = new String[]{valueReceived};
                break;
正在执行,而不是:

case 2:
                        selection = Employee.COL_COUNTRY + " IS ? COLLATE NOCASE";
                        selectionArgs = new String[]{valueReceived};
但是,如果我评论外部开关的情况1和情况2。我得到了想要的结果

我错过了什么

您忘记为顶级案例0添加中断:

没有休息;,流只是继续并进入下一个case块,直到它到达break语句或直到它退出开关


另外,为嵌套的案例2添加一个中断也不错,以防将来添加更多案例,最终可能会出现与此相同的问题,顺便说一下,这就是所谓的故障。

您不会从外部开关案例0中断。在内部开关的闭合支架上添加一个断路器

case 0:
    switch (childPosition) {
    //
    } break;

您缺少休息时间:

switch (groupPosition) {
    case 0:
        switch (childPosition) {
            ...
        }
        break; // <-- here
    case 1:
        selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
        selectionArgs = new String[]{valueReceived};
        break;
    case 2:
        empIDList = GetAllTeamLeaders.teamLeaders(this, TeamLeader.COL_TEAMMEMBERID, TeamLeader.COL_TEAMLEADERNAME + " IS ? ", new String[]{valueReceived});
        selection = Employee.COL_EMPID + " IN (" + TextUtils.join(",", Collections.nCopies(empIDList.size(), "?")) + ")";
        selectionArgs = empIDList.toArray(new String[empIDList.size()]);
        break;
}

案例0缺少break语句:案例0中的switch语句后面需要一个分号和break,否则它将在完成时转到案例1。我错过了!恐惧!感谢你,我无法用语言表达我对你的感激之情:
switch (groupPosition) {
    case 0:
        switch (childPosition) {
            ...
        }
        break; // <-- here
    case 1:
        selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
        selectionArgs = new String[]{valueReceived};
        break;
    case 2:
        empIDList = GetAllTeamLeaders.teamLeaders(this, TeamLeader.COL_TEAMMEMBERID, TeamLeader.COL_TEAMLEADERNAME + " IS ? ", new String[]{valueReceived});
        selection = Employee.COL_EMPID + " IN (" + TextUtils.join(",", Collections.nCopies(empIDList.size(), "?")) + ")";
        selectionArgs = empIDList.toArray(new String[empIDList.size()]);
        break;
}