本日の学習
【学習内容】
〇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`(直接)
| インデックス番号が必要 | インデックス番号は使わない
| 要素の位置を操作できる 位置は意識せず全部処理
本日の学習
【学習内容】
〇Progate
Java学習レッスンⅡ
10~12:break、continue、配列、要素の上書き
理解度:89
【疑問点】
① if文とfor文の違い
②breakとcontinueの違い
int i = 1;
while (i < 10) {
// iが5の倍数のとき、繰り返し処理を終了してください
if(i %5 == 0){
break;→処理の中断、強制終了のイメージ(iが9になるまでループされるが、iが5の倍数になった時点で以降の処理は終了)
}
System.out.println(i);
i++;
}
for (int j = 1; j < 10; j++) {
// jが3の倍数のとき、処理をスキップしてください
if (j % 3 == 0){
continue;→「現在の繰り返し処理」をスキップして、次の繰り返しに進む
}
System.out.println(j);
}
処理の流れ
j = 1
1 % 3 != 0なので、スキップせず、出力される。
→ 1が出力される。
j = 2
2 % 3 != 0なので、スキップせず、出力される。
→ 2が出力される。
j = 3
3 % 3 == 0なので、continueが発動。
→ この回はスキップされ、System.out.println(3) は実行されない。
j = 4
4 % 3 != 0なので、スキップせず、出力される。
→ 4が出力される。
j = 5
5 % 3 != 0なので、スキップせず、出力される。
→ 5が出力される。
j = 6
6 % 3 == 0なので、continueが発動。
→ この回はスキップされ、System.out.println(6) は実行されない。
j = 7
7 % 3 != 0なので、スキップせず、出力される。
→ 7が出力される。s
j = 8
8 % 3 != 0なので、スキップせず、出力される。
→ 8が出力される。
j = 9
9 % 3 == 0なので、continueが発動。
→ この回もスキップされ、System.out.println(9) は実行されない。
😊まとめ
fは~のとき
forは条件なしで繰り返したいとき
breakは処理を中断したいとき
continueは処理をスキップしてもまた続きからしたいとき
【苦手】
① if文とfor文の違い
✅ if文(条件分岐)
役割:条件に応じて「処理を実行するかどうか」を決める。
使う場面:「○○だったら〜する」というように、状況に応じた処理をしたいとき。
🔁 for文(繰り返し)
役割:ある処理を決まった回数だけ繰り返す。
使う場面:何回も同じような処理をしたいとき(例:1〜10まで表示するなど)。
②配列の宣言と要素を同時に書くとき
String names ={"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};→〇
String = names {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};→× 構文:型[]配列名={要素};
言葉の定義
③配列の「要素」「インデックス番号」の言葉の定義
要素:実際のデータ
インデックス番号:配列の箱の位置
④配列の要素の上書き
例: languages[1] = "Java";
本日の学習
【学習内容】
〇Progate
Java学習レッスンⅡ
8~9:while文
理解度:95
【疑問点】
① int number = 10;
// while文を用いて、numberが0より大きい場合に繰り返す、繰り返し処理を作ってください
while (number > 0 ) {
System.out.println(number);
-- number;
}
while文は条件式は一つだけ?→〇
後置インクリメントにしてもコンパイルした結果が変わらないのは?→先に出力されてその後にインクリメントされるから。
②// for文を用いて、繰り返し処理をつくってください
for ( int i = 1 : i >= 10 : i ++){
System.out.println( i + "回目のループです");
}
→8個数コンパイルエラー(8errors)になった…(笑)
原因:条件式の区切り :× ;○
for (初期化; 条件; 更新) {
// 繰り返したい処理
}
【苦手】
① // for文を用いて、繰り返し処理をつくってください
for ( int i = 1 : i >= 10 : i ++){
System.out.println( i + "回目のループです");
}
条件式の3つ目(更新式)はループの最後(}に来たら)に実行される。
本日の学習
2025.05.11
【学習内容】
〇Progate
Java学習レッスンⅠ
1~5:System.out.println、文字列、数値、文字列の連結
理解度:95
【疑問点】
System.out.println("38"+"19")だとコンパイルに成功して出力できる、
System.out.println("38+19");だとコンパイルエラーになる理由。
正: コンパイルできるが38+19と出力される
// "38"と"19"を連結して出力してください
System.out.println("38"+"19");→〇
System.out.println("38+19");→×
仮説:数字ごとに””がないと文字列としてみなされないのか?
”38+19” だと出力するときに文字列とみなされるが、
+が出力されてしまうから。
→おおむね〇
結果:"38+19" はただの文字列です。
中に + が含まれているだけで、Javaにとっては関係ありません。
38と19をそれぞれ文字列として出力したいため、+を””で含めてはいけない。
【苦手】
余りの数がでる割り算
// 8を3で割った時の余りを出力してください
System.out.println(8%3);