C*******a 发帖数: 448 | 1 jump game的代码如下,说missing return,这种情况下怎么改最规范?
public class Solution {
public boolean canJump(int[] A) {
int reach = 0;
for (int i = 0; i < A.length; i++) {
if (reach < i) {return false;}
reach = Math.max(reach, i + A[i]);
if (reach >= A.length - 1) {return true;}
}
}
} |
l*********u 发帖数: 19053 | 2 return false after for loop
【在 C*******a 的大作中提到】 : jump game的代码如下,说missing return,这种情况下怎么改最规范? : public class Solution { : public boolean canJump(int[] A) { : int reach = 0; : for (int i = 0; i < A.length; i++) { : if (reach < i) {return false;} : reach = Math.max(reach, i + A[i]); : if (reach >= A.length - 1) {return true;} : } : }
|
C*******a 发帖数: 448 | 3 但是实际上不会执行这line(在for里面就return了)
【在 l*********u 的大作中提到】 : return false after for loop
|
f******n 发帖数: 198 | 4 在for-loop前面加上boolean result = false。把loop里面的return false改成break
,return true改成result = true;break。最后加上return result。
Single return statement per function makes debugging much easier.
【在 C*******a 的大作中提到】 : 但是实际上不会执行这line(在for里面就return了)
|
p**t 发帖数: 157 | 5 所以你return啥都没关系
说你missing return的原因是你的所有return都是在if语句里的
对于编译器来说 他没办法确认某个return一定会被执行到
【在 C*******a 的大作中提到】 : 但是实际上不会执行这line(在for里面就return了)
|
C*******a 发帖数: 448 | 6 好吧,我记得又一次我declare一个变量n,都在条件里,但实际上都能执行到,java也
不认
if (...) {int n = 1;}
else: {int n = 0;}
结果下面出现n,java也是不认,报错。是不是同理?
【在 p**t 的大作中提到】 : 所以你return啥都没关系 : 说你missing return的原因是你的所有return都是在if语句里的 : 对于编译器来说 他没办法确认某个return一定会被执行到
|
f******n 发帖数: 198 | 7 不是,declaration out of scope。
【在 C*******a 的大作中提到】 : 好吧,我记得又一次我declare一个变量n,都在条件里,但实际上都能执行到,java也 : 不认 : if (...) {int n = 1;} : else: {int n = 0;} : 结果下面出现n,java也是不认,报错。是不是同理?
|
p**t 发帖数: 157 | 8 这肯定不认啊 你定义的n是在某个if语句里
甚至你两次定义的n都不一定是同类型的变量
你在外面直接一个n 编译器怎么知道你指的是哪个n
【在 C*******a 的大作中提到】 : 好吧,我记得又一次我declare一个变量n,都在条件里,但实际上都能执行到,java也 : 不认 : if (...) {int n = 1;} : else: {int n = 0;} : 结果下面出现n,java也是不认,报错。是不是同理?
|
C*******a 发帖数: 448 | 9 都是在函数里,不是同一个scope么?
【在 p**t 的大作中提到】 : 这肯定不认啊 你定义的n是在某个if语句里 : 甚至你两次定义的n都不一定是同类型的变量 : 你在外面直接一个n 编译器怎么知道你指的是哪个n
|
s****i 发帖数: 5469 | 10 不是的。你还可以试试1楼for循环里的变量i,它出了for循环后也不认。
【在 C*******a 的大作中提到】 : 都是在函数里,不是同一个scope么?
|
|
|
d******k 发帖数: 32 | 11 为什么这么确定不会执行?
【在 C*******a 的大作中提到】 : 但是实际上不会执行这line(在for里面就return了)
|
d******k 发帖数: 32 | 12 我建议你还是先学好编程语言的基础,诸如语法之类,再回来做题比较好。
【在 C*******a 的大作中提到】 : 都是在函数里,不是同一个scope么?
|
C*******a 发帖数: 448 | 13 因为if和else各有一个return,你有啥意见?
【在 d******k 的大作中提到】 : 为什么这么确定不会执行?
|
C*******a 发帖数: 448 | 14 题都做了好几遍了
【在 d******k 的大作中提到】 : 我建议你还是先学好编程语言的基础,诸如语法之类,再回来做题比较好。
|
d******k 发帖数: 32 | 15 首先,你没有else,其次A可以是空数组,for不执行,即使你有else也没用。
这位同学,说话可以谦虚点,如果你已经刷了几遍题了,那么也是时间回去看看语法基
础,然后再回来看看自己刷过的题哪些地方可以改进令code写得更好点。
Good Luck!
【在 C*******a 的大作中提到】 : 因为if和else各有一个return,你有啥意见?
|
b*****X 发帖数: 22 | 16 A.length = 0 zen me ban |