有人帮忙看看吗,为什么第一个可以,而第二个却没有返回值
```java
有大佬帮忙看看吗,为什么第一个可以,而第二个却没有返回值
class Solution {
public boolean containsDuplicate(int[] nums){
Arrays.sort(nums);
int n = nums.length;
for (int i = 0; i < n - 1; i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
}
return false;
}
}
class Solution {
public boolean containsDuplicate(int[] nums){
Arrays.sort(nums);
int n = nums.length;
for (int i = 0; i < n - 1; i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
else{
return false;
}
}
}
}
```
第2个 就是缺少返回值,如果n=0,for循环就不会进,再往后没有返回值,所以报错
for循环的执行是要判断条件的,如果条件不满足是不会执行的,那么把for循环去掉,可不就是没返回值吗
第一个的return false在循环体外边,即完成循环没有符合条件的才返回false
第二个的return false在循环体里面,当循环到第一个元素时,不论条件是否匹配,都有返回,跳出循环了