[英]error while returning a value from a for-if loop in java
你missing return statement
,因為代碼的每個分支都應該返回一些東西,這里如果數組是空的,那么你不做任何循環你將沒有回報
然后你把else
放在循環中,所以如果第一個數字不是你返回-1
的循環,意味着沒有找到。 您需要等待整個循環才能知道您沒有找到它
該行為修復也解決了語法問題
public int search(int[] nums, int target){
for(int i=0; i<nums.length; i++){
if(nums[i] == target)
return i;
}
return -1;
}
即使您在 IF 語句和 ELSE 語句中有 return,只有當代碼進入 FOR 語句時才會到達它們。
如果你用一個空的nums
數組調用你的方法會發生什么? if 將跳過 for 語句,並且在這種情況下您的方法沒有任何返回,您明白了嗎?
這就是為什么您還需要在 for/loop 之外返回,這意味着: What your method wants to return if reaches this point?
.
例如,如果是搜索,您可以在 FOR/循環外部返回 -1 並從內部刪除 ELSE 語句。
不想改變太多你的代碼,所以你清楚地看到了區別,因為你很清楚地開始了:
public int search(int[] nums, int target) {
int i;
int j;
int n = nums.length;
for (i=0;i<n;i++){
if (nums[i]==target) {
return (i);
}
}
return (-1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.