2017-04-10 16 views
0

私は配列の検索ループを研究しています。私が自分でコードを実行しようとしたときに、私が見つけられないエラーがいくつかありました。私がJavaコーディングにNetbeansを使用しているところで。Java Search Loop for array

マイ配列検索コード:

public class JavaApplication { 

    public static void main(String[] args) { 
     int[] nums = new int[5]; 
     nums = new int[]{2, 4, 6, 8, 7}; 
     int target = 7; 
     for (int i = 0; i < nums.length; i++) { 
      if (nums[i] == target) { 
       return i; 
      } 
     } 
     return -1; 
    } 
} 

NetBeansは私の最後のreturn文には不要return文があることを述べました。

return文を修正してこのコードを実行するにはどうすればよいですか?

+4

戻り値の型が "void"の値を返すことはできません。他のメソッドでそれを行う必要がある場合はmainメソッド内で呼び出す必要があります。 –

+1

私は宿題の助けを求める質問には、問題を解決するために今までに行った作業の概要と解決している問題の説明が含まれている必要があるため、 [Source](https://stackoverflow.com/help/on-topic) –

+0

申し訳ありませんが、あなたが近くに投票した理由が分かりません。これは自分自身で作成したこのコードの宿題ではありません。私の難しさは、なぜ不必要なリターンがあるのですか?他の人には空白があると言いたいので、不要なことを言うのではなく戻ることはできません。 –

答えて

2

メソッドタイプがvoidの場合、何も返すことはできません。

あなたはint型の配列で見つかったかされていない場合は、印刷別のメソッドにロジックを抽出し、

public static void main(String[] args) { 
    int[]nums = {2,4,6,8,7}; // you can initialize the array like this 
    int target=7; 

    System.out.println(findValue(target, nums)); 

    } 



    private static int findValue(int target, int[] nums) { 
    for(int i=0; i<nums.length;i++){ 
    if(nums[i]==target) 
     return i; 

     } 
     return -1; 
    } 
+1

私にエラーを見つけるために助けてくれてあります。 –

+0

問題ない、幸運! –

2

がどのようにreturn文を修正することができ、このような結果を印刷する必要がある場合は、このコードを実行しますか?

あなたはintを返す分離したメソッドを作成し、例えば、あなたの主な方法でそれを呼び出すことができます。

public static void main(String[] args) throws Exception { 
    myMethod(); //call your method in the main method 
} 

public static int myMethod() { 
    int[] nums = new int[5]; 
    nums = new int[]{2, 4, 6, 8, 7}; 
    int target = 7; 
    for (int i = 0; i < nums.length; i++) { 
     if (nums[i] == target) { 
      return i; 
     } 
    } 
    return -1; 
} 

あなたのメソッドがvoidであるときは、任意のものを返すことができない、プラスすることができます」メインメソッドで何かを返す、それはjavaで許可されていません。

+1

私はjavaに新しいので、時々私はいくつかの小さなエラーを作った。 –

+0

ようこそ@AllenLi –