这是我的代码块
lightweight_named_tuple
它说缺少一个返回声明。毫无疑问,这是因为我的return语句在我的for循环中,但是我是一个Java新手,并且我一直在外面弄乱它,因此我一直在为自己制造新的问题。
答案 0 :(得分:1)
您的返回值位于<!-- jQuery first, then Popper.js, then Bootstrap JS. -->
<script src="node_modules/jquery/dist/jquery.slim.min.js"></script>
<script src="node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
循环内,但是如果数组为空(因此for
为0),它可能根本不会执行,因此编译器会抱怨需要返回。
您可以将返回值初始化为默认值(例如nums.length
)并在循环中进行更新。像这样
false
答案 1 :(得分:1)
您的代码有两件事
nums
数组永远不会为空,也仍然需要返回某些内容,这是您的主要问题。 这是您代码的修订版
public static boolean noTriples(int[] nums) {
for (int i = 0; i < nums.length; i++) {
// If the condition is true for the current element, we return.
// If not, we continue to the next element
if (!(nums[i] == nums[i + 1] && nums[i + 1] == nums[i + 2])) {
return true;
}
}
// in case our array is empty, we return false.
// and we never go through our loop
// or maybe, no element matches our condition.
return false;
}
某些人更喜欢一个函数中没有多个return
语句。在这种情况下,您可以实例化一个boolean
变量,该变量在开始时是错误的,并且您可以更改此变量的值,而不是在循环中返回true
。然后,您将返回该变量。
答案 2 :(得分:1)
这是因为编译器不确定是否会在for循环中返回它。 for循环的中间部分是一个条件,因此如果从一开始就为假,则不会执行循环,也不会返回值。如果您尝试在if语句中返回else而不返回else,也会发生同样的情况。
boolean flag=false;
for(int i=0;flag;i++){
System.out.println("This will not be printed");//this will not be printed
}
如果您执行以下操作:
for(int i=0;true;i++){
return "value";
}
编译器确保您返回一个值,因此不会抱怨。
答案 3 :(得分:0)
您必须返回循环之外。由于在循环内返回,因此出现编译时错误。您必须在循环内计算布尔值true或false,然后在for循环外返回。