とりあえずコードを読みましょう。
コードを読むコツは『一行レベルで、その行が何をしているかを考えながら読む』です。
Java
1public class Main {
2 public static int [] makeArray (int size) {
3 iint [] newArray = new int [size];//sizeで指定された数の要素を持つ配列作成→sizeは何を指定しているのか。
4 for (int i = 0 ; i < newArray.length ; i++) {
5 newArray[i] = i ;//配列要素にインデクス番号と同じ値を入れる
6 }
7 return newArray ;//配列を返す
8 }
9
10 public static void main (String [] args) {
11 int [] array = makeArray (3) ;//3つの要素を持つ配列を作成→3つの要素は何か。どこにきさいあるか。
12 for (int i : array) {
13 System.out.println(i);
14 }
15 }
16}
まず、mainメソッド内から読みます。
Java
1 // mainメソッドの定義
2 public static void main (String [] args) {
3 // 配列を生成???
4 int [] array = makeArray (3) ;//3つの要素を持つ配列を作成→3つの要素は何か。どこにきさいあるか。
5 // 配列内にあるデータを一個ずつ取り出し、
6 for (int i : array) {
7 // 出力
8 System.out.println(i);
9 }
10 }
これを疑似コードとして、書きだす。
1. 配列を生成???
2. 配列内にあるデータを一個ずつ取り出し、
2.1. 出力
となりますね。この(1)がよくわからないですが。
で、元のこーどでは(1)で int [] array = makeArray (3) ;
となっていますが、これはどういう意味でしょうか?
左辺を見ると、int[] array
となっていますね。これは配列ですね。
右辺では makeArrayメソッドに3 というデータを渡して呼び出しています。
という事でmakeArrayメソッドとやらも同様に潜ってみましょう。
Java
1 // 仮引数sizeを引き受け、int型配列を返すmakeArrayメソッドの定義
2 public static int [] makeArray (int size) {
3 // size分、配列を確保
4 iint [] newArray = new int [size];//sizeで指定された数の要素を持つ配列作成→sizeは何を指定しているのか。
5 // 配列の大きさ分、ループしながら以下を処理
6 for (int i = 0 ; i < newArray.length ; i++) {
7 // 要素番号と同じデータをセット
8 newArray[i] = i ;//配列要素にインデクス番号と同じ値を入れる
9 }
10 // その結果(newArray)を返す
11 return newArray ;
12 }
これも疑似コードにしましょう。
[ 引数: int size, 戻り値: int[] ]
i. size分、配列を確保
ii. 配列の大きさ分、ループしながら以下を処理
ii.i. 要素番号と同じデータをセット
iii. その結果(newArray)を返す
で、実際にデータを入れて考えてみましょう。引数 size には 3 が入っているとします。
(i)で要素数3の配列が生成される。(ii)で i = 0 となりますね。
(ii.i)で newArray[i] = i;
ですが、i = 0 なのでnewArray[0] = 0;
ということになりますね。
つまり、
size = 3 (引数)
i = 0
newArray = { 0 }
ですね。
さらに(ii)に戻って i++ するので i = 1 となる。条件式 i < newArray.length
を満たすので(ii.i)に。
(ii.i)では、i = 1 なので newArray[1] = 1;
となる。
よって、
size = 3 (引数)
i = 1
newArray = { 0, 1 }
となる。さらに (ii)に戻って…と処理して、i = 3 のときに (ii)の条件式i < newArray.length
をみたさないのでループは終了する。( 3 < 3 なので )
そしてそのまま(iii)に行き、return newArray; をして終了。
つまり、生成して値を設定した配列を返して終了。
で、呼び出し元であるmainメソッドに戻って int[] array = makeArray(3);
の左辺 int[] arrayにセットされる。
と読んでいくと、makeArrayメソッドで要素数3 の配列( 中身は { 0, 1, 2 } となっている )を生成して返す。
その配列をmainメソッド側が受けとって表示しているだけですね。
読み方のコツとしては、『変数やオブジェクト、メソッドが何を指し示しているか』と『(変数やオブジェクト、メソッドの)スコープ等とデータの状態』を意識することです。