【学習内容】
〇Progate
Java学習レッスンⅡ
13~15:配列と繰り返し、拡張for文
理解度:80
【疑問点】
①lengthの使い方
→構文:配列変数名.lenght
for(int i = 0; i<names.length; i++ ){// iはインデックス番号の変数のイメージ
System.out.println("私の名前は" + names[i] + "です") ;
}
→なんでnames[i]なのか、namesは?→要素を取り出すときにインデックス番号が必要で、これじゃ何番目の箱の要素をとるのか分からないから
👉iがインデックス番号の変数だと分かる理由
i < names.length と書かれているから、iがインデックス番号の変数として認識される。
iをインデックス番号の変数って認識するのはi < names.length の部分だけど、先にiの宣言をしないといけないから、宣言→条件式の順番になる
②拡張for文の処理
String names = {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};→配列の変数
for(String name :names){
System.out.println("私の名前は"+ name +"です");→変数(name)自体に要素を1つずつ代入してるのでインデックス番号の概念は消える
}
✅「配列namesから、1つずつ要素を取り出して、それをnameという変数に入れる」
普通のfor文ではインデックス番号を用いて配列の要素を取得しなければなりませんが、
拡張for文では変数に配列の要素自体が代入されます
【苦手】
①for文 構文
for (初期化; 条件式; 更新処理) {
// 繰り返し実行したい処理
}
for(int i = 0; i<names.length; i++ ){ →iはまだ上に登場していない変数なのでデータ型をつける。条件式:配列全部をとるのでiが配列全部に行くまで
System.out.println("私の名前は" + names[i] + "です") ;
}
②拡張for文
for (データ型 変数名 : 配列またはコレクション) {
// 繰り返し処理
}
| 通常のfor文 | 拡張for文
| ----------------------------- | --------------------------- |
| `for (int i = 0; i < ~; i++)` | `for (String name : names)` |
| 要素の取り出しは `names[i]` 要素の取り出しは `name`(直接)
| インデックス番号が必要 | インデックス番号は使わない
| 要素の位置を操作できる 位置は意識せず全部処理