对于循环Java无法访问的语句

时间:2016-11-27 05:00:57

标签: java unreachable-code

我不断收到错误信息,因为我在“无法访问的语句”行上方添加了评论。我怎样才能解决这个问题?这段代码还有什么问题吗?

boolean containsAll(IntSet [] s) {


    return false;

    // Unreachable Code begins here
    for (int y = 0; y< s.length; y++) {
        for (int i = 0; i< s[y].arr.length; i++) {
            if (s[y].contains(i)) {
                if (i>=arr.length) {
                    return false;
                }
                if (!arr[i]) {
                    return false;
                }
            }
        }
    }
    return true;
}

2 个答案:

答案 0 :(得分:1)

正如@Eli所建议的,只要你在函数中的某些语句之前有返回条件,它就永远不会到达那个代码,因此会给你编译错误

错误:无法访问的声明

如下图所示:

Compilation error message

只需在第12行删除return false,如上图所示,它将编译您的程序而不会出现任何错误。

希望它有所帮助!!!

答案 1 :(得分:0)

boolean containsAll(IntSet [] s) {


    return false; // <------- remove this 

    // Unreachable Code begins here
    for (int y = 0; y< s.length; y++) {
        for (int i = 0; i< s[y].arr.length; i++) {
            if (s[y].contains(i)) {
                if (i>=arr.length) {
                    return false;
                }
                if (!arr[i]) {
                    return false;
                }
            }
        }
    }
    return true;
}

显然不会达到return声明下面的代码。因为它会自动结束一个方法。 return用于将Object值传递给函数/方法本身。尝试阅读本文,了解return的含义将有很大帮助。 - &GT;&GT; Returning a Value in Method