-7

私はJavaが初めてです。ここに私がこれまでに持っているものがあります:

   int getLength(int length) { 
       int[]a = new int[length];
       for(int i = 0; i < a.length; i++) 

       return(length);

   }

「return ステートメントがありません」と表示されていますが、どこに問題があるのでしょうか。それはどのように書かれるべきですか?ありがとう

4

5 に答える 5

2
public int getLength(int[] i){
        return i.length;
    }
于 2013-09-24T22:00:52.003 に答える
2

ここでやりたいことはこれだと思います:

int getLength(int[] arr)
{
   int length = 0;
   for(int i = 0; i < arr.length; i++)
     length++;
   return length;
}

これはある種の宿題のためだと思います。これは for ループを教えるためだけですarr.length。例えば。

int getLength(int[] arr){ return arr.length; }
于 2013-09-24T22:10:52.527 に答える
1

あなたが提供したものから、コードは次のようになるはずです:

int getLength(int[] a){
     int length = a.length;
     return length;

}

arrayname.length を実行することで、配列の長さを簡単に取得できます

問題はメソッドが整数の配列を取ることを指定したため、メソッド パラメーター内で入力として配列を渡す必要があります。この場合は int[] a で、int length ではありません。

于 2013-09-24T22:04:43.087 に答える
1

このようなメソッドは機能上不要です。配列を関数に渡してその関数に長さを返す代わりに、たまたま必要な場所で長さを取得するだけです。

a.length
于 2013-09-24T22:02:53.543 に答える
0

整数の配列を取る getLength()

それは間違っています。メソッドの署名は、getLength() がパラメーターとして整数 (整数の配列ではない) を取ることを示唆しています。

そのため、コードの残りの部分は少し混乱しています。基本的に、実際に行っていることは次のとおりです。

  • タイプ「整数の配列」の変数 a を宣言し、長さの新しい配列に初期化するlength
  • 次に、配列全体を反復処理しますが (長さがゼロでない場合)、最初の反復でその長さを返します (したがって、コード スニペットを終了します)。

forループ条件が真ではなく、配列の長さがゼロの場合、return命令は実行されないため、コンパイラは return ステートメントがないと言っています。そうでない場合、メソッドには常にreturn指示が必要ですreturn typevoid

コードのスニペットで実際に何をしていたのかを説明しようとしました。そのメソッドの本当の目的が何であるかがわかりませんでした。たぶん、user2635032の答えだけがあなたに合うはずです。

于 2013-09-24T22:11:15.660 に答える