簡體   English   中英

從 java 中的 for-if 循環返回值時出錯

[英]error while returning a value from a for-if loop in java

在此處輸入圖像描述

我想從 java 中的 for-if 語句返回一個值,但不幸的是我不能這樣做。 我確實嘗試從 for 循環的 if 語句中返回一個值,但出現錯誤

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM