Java超|6章のまとめ

繰り返しを制する者は、処理の流れを制する。
6章を理解すると、Javaのプログラムは「同じ動きを何度も行う力」と「必要な場面で流れを変える力」を手に入れる。

6章では、Javaで同じ処理を何度も繰り返すための方法と、その繰り返しの流れを途中で調整する方法を学びました。

プログラムは、上から下へ順番に処理を書くだけでも動きます。
しかし、それだけでは表現しにくい処理がたくさんあります。

たとえば、同じメッセージを10回表示したいとき、条件が成り立っている間だけ処理を続けたいとき、まず1回は必ず処理を実行したいとき、目的を達成したら途中で処理を終えたいとき、特定の回だけ処理を飛ばしたいときなどです。

このような場面で使うのが、for文、while文、do~while文、break文、continue文です。

さらに6章では、文のネストも学びました。
ネストを使うと、単純に1列で繰り返すだけでなく、行と列を扱う処理、模様を作る処理、繰り返しの中で条件分岐を行う処理など、より実践的なプログラムを書けるようになります。

ドラゴンボール風にたとえると、6章は「型を何度も繰り返して修行しながら、戦況に応じて途中で止めたり、特定の回だけ飛ばしたりする訓練」です。

決められた回数だけ型を出す。
敵の気配がある間だけ警戒を続ける。
まず一度、任務札を確認してから続行するか判断する。
目的を達したら途中で切り上げる。
足場が悪い回だけ省略して、次の修行へ進む。

このように、6章の内容は、Javaのプログラムに「繰り返す力」と「流れを調整する力」を与える大切な学習です。

6章で学んだことの全体像

6章で学んだ内容は、大きく分けると2つあります。

1つ目は、繰り返し処理を書くための文です。
2つ目は、繰り返しの流れを途中で変えるための文です。

学んだ内容役割
for文回数や範囲を意識しながら繰り返す
while文条件が成り立つ間、繰り返す
do~while文まず1回実行してから条件を判定する
文のネスト文の中に別の文を入れて、複雑な処理を書く
break文ループやswitch文を途中で抜ける
continue文その回の残りを飛ばして、次の繰り返しへ進む

この表を見ると、6章の内容はただの文法暗記ではないことが分かります。

for文、while文、do~while文は、繰り返しそのものを作るための道具です。
break文とcontinue文は、その繰り返しの流れを途中で調整するための道具です。
文のネストは、繰り返しや条件分岐を組み合わせて、複雑な処理を作るための考え方です。

ドラゴンボール風にたとえると、for文、while文、do~while文は「修行を繰り返す型」です。

break文は「目的を達したので撤収する合図」です。
continue文は「この回だけ省略して次の型へ進む合図」です。
ネストは「広い修行場を行ごと、列ごとに巡回する複合訓練」です。

for文で回数を意識した繰り返しを学んだ

for文は、繰り返し処理の中でも特に基本となる文です。

何回繰り返すのか、どこからどこまで進めるのかが見えやすいため、回数や範囲がはっきりしている処理に向いています。

基本の形は次のようになります。

for(初期化; 条件式; 変化式){
    処理;
}

for文の特徴は、初期化、条件式、変化式が1か所にまとまっていることです。

見るポイント内容
初期化最初の値を決める
条件式どこまで繰り返すかを決める
変化式1回ごとに値をどう変えるかを決める

この3つを見ることで、繰り返しの全体像をつかみやすくなります。

たとえば、1から5まで処理する、10回だけ表示する、0から順番に番号を増やしていく、といった処理では for文 がとても便利です。

ドラゴンボール風にたとえると、for文は「1回目から5回目まで型を出す」と決めた反復修行です。

最初の回数を決めます。
まだ続けるかを確認します。
1回終わるたびに次の回へ進みます。

この流れが、for文の基本です。

for文を読むときの考え方

for文を読むときは、丸かっこの中を一度に見ようとすると少し難しく感じることがあります。

そんなときは、次の3つに分けて見ると分かりやすくなります。

順番確認すること
1どこから始まるか
2いつまで続くか
31回ごとにどう変化するか

この3つが分かると、繰り返しが何回行われるのか、どの値が使われるのかを読み取れます。

たとえば、回数を数える変数が1から始まり、5以下の間だけ繰り返し、毎回1ずつ増えるなら、処理は5回行われます。

見方分かること
初期値を見る何回目から始まるか
条件式を見るどこで止まるか
変化式を見る次の回へどう進むか

for文を理解できると、決まった回数だけ処理する、番号を使って順番に処理する、合計を求める、指定回数だけ表示する、といった処理が書きやすくなります。

ドラゴンボール風にたとえると、修行メニューに「1回目から10回目まで」と書かれているようなものです。
回数が決まっている修行なら、for文を使うと流れがすっきりします。

while文で条件による繰り返しを学んだ

while文は、条件が true である間だけ処理を続けるための文です。

基本の形は次のようになります。

while(条件){
    処理;
}

while文では、最初に条件を確認します。

条件が true ならブロック内の処理を実行します。
処理が終わると、もう一度条件を確認します。
条件が false になったら、while文を終了します。

項目内容
条件判定の位置処理の前
最低実行回数0回のことがある
向いている場面回数より条件を重視する処理

while文は、回数がはっきり決まっている処理よりも、「条件が成り立つ間は続けたい」という処理に向いています。

たとえば、目標に達するまで続ける、入力が終わるまで続ける、特定の状態が続いている間だけ処理する、といった場面です。

ドラゴンボール風にたとえると、while文は「敵の気配がある間は警戒を続ける」ような処理です。

敵の気配があるなら警戒します。
気配がなくなったら警戒を終えます。
最初から気配がなければ、警戒行動は一度も行いません。

while文で注意したいこと

while文では、条件がいつか false になるように書くことが大切です。

条件に関係する値が変化しないと、条件がずっと true のままになり、処理が終わらない可能性があります。

注意点内容
条件が変化するかいつか false になるかを確認する
更新処理があるか値が変わらないと終わらないことがある
初期値が正しいか最初から false なら1回も実行されない
条件式が正しいか繰り返し回数や終了タイミングが変わる

for文は、初期化、条件式、変化式が1行にまとまっているため、回数管理が見えやすい構文です。

一方、while文は、初期値や更新処理が離れた場所に書かれることがあります。

そのため、while文を読むときは、初期値、条件、更新の3つをセットで確認すると安心です。

見るもの確認する内容
初期値どの状態から始まるか
条件何が true の間だけ続くか
更新条件が false に近づく変化があるか

ドラゴンボール風にたとえると、修行を続ける条件があるのに、回数札や状態札を進め忘れると、いつまでも修行が終わりません。

while文では、「条件が変わるしくみ」を必ず意識しましょう。

do~while文で最低1回は実行される流れを学んだ

do~while文は、while文とよく似ていますが、条件を確認するタイミングが違います。

基本の形は次の通りです。

do{
    処理;
}while(条件);

do~while文では、まずブロック内の処理を実行します。
そのあとで条件を確認します。

つまり、条件が最初から false であっても、最初の1回は必ず実行されます。

条件判定の位置最低実行回数
while文処理の前0回
do~while文処理の後1回

この違いはとても大切です。

while文は「条件を満たしているなら実行する」構文です。
do~while文は「まず実行してから、続けるかどうかを判断する」構文です。

ドラゴンボール風にたとえると、while文は「敵の気配があるなら確認する」です。
do~while文は「まず一度、周囲を確認してから、さらに続けるかを判断する」です。

do~while文が向いている場面

do~while文は、最初の1回を必ず実行したい処理に向いています。

場面do~while文が向いている理由
メニューを最低1回は表示したい表示してから続行を判断できる
入力を1回受け取ってから判定したい入力後に条件を確認できる
処理結果を見て続けるか決めたい実行後に判断できる
任務確認を最低1回行いたいまず確認してから続けるか決められる

do~while文では、最後の while(条件); の後ろにセミコロンが必要です。

do{
    処理;
}while(条件);

この最後のセミコロンは、do~while文の形として大切です。

while文だけを学んだ直後は忘れやすいので、しっかり確認しておくと安心です。

ドラゴンボール風にたとえると、do~while文の最後のセミコロンは「この確認型はここで一区切り」という印です。

3種類の繰り返し文を使い分ける

6章では、for文、while文、do~while文という3種類の繰り返し文を学びました。

どれも繰り返し処理を書くための構文ですが、向いている場面が少しずつ違います。

向いている場面ドラゴンボール風のイメージ
for文回数がはっきりしている繰り返し10回だけ型を出す修行
while文条件が成り立つ間だけ続けたい処理気配がある間だけ警戒する
do~while文最初に必ず1回は実行したい処理まず一度、任務札を確認する

この使い分けが、6章の大きなポイントです。

同じ結果を作れる場合もありますが、どの文を使うかによって、コードの意図の伝わりやすさが変わります。

判断したいこと向いている文
何回繰り返すかが分かっているfor文
いつ終わるかが条件で決まるwhile文
まず1回実行する必要があるdo~while文

「何回か」が主役なら for文。
「どの条件の間か」が主役なら while文。
「まず実行すること」が大切なら do~while文。

このように考えると、使い分けがかなり分かりやすくなります。

図:6章で学んだ繰り返し処理の全体像

この図が示していること

この図では、6章で学んだ内容が「繰り返し処理」を中心につながっていることを示しています。

for文、while文、do~while文は、繰り返し処理を作るための基本です。

文のネストを使うと、繰り返しの中にさらに繰り返しや条件分岐を入れられます。

break文は、繰り返しやswitch文を途中で抜けるために使います。
continue文は、ループ全体を終えるのではなく、その回の残りだけを飛ばして次へ進むために使います。

ここから分かることは、6章の内容はバラバラの知識ではなく、Javaの処理を反復させ、必要に応じて調整するための一連の道具だということです。

文のネストで複雑な処理が書けるようになった

6章では、文のネストも学びました。

ネストとは、文の中に別の文を入れ子のように書くことです。

たとえば、for文の中にfor文を書くと、多重ループになります。
for文の中にif文を書くと、繰り返しながら条件に応じて処理を変えられます。

組み合わせできること
for文 + for文多重ループを作れる
for文 + if文条件つきの繰り返しができる
while文 + if文条件を見ながら処理を制御できる
多重ループ + if文表や模様のような複雑な処理ができる

ネストを使うと、表のような行と列を扱う処理、記号を並べる処理、複数の組み合わせを順番に調べる処理などが書けるようになります。

ドラゴンボール風にたとえると、ネストは「広い戦場を行ごとに進み、その行の中をさらに列ごとに確認する巡回」です。

外側のループが大きな移動を担当します。
内側のループが細かい確認を担当します。

1つの修行場に入ったら、その中の型をすべて確認します。
それが終わったら、次の修行場へ進みます。

ネストを読むときのコツ

ネストした文は、最初は少し複雑に見えます。

特に、多重ループでは、外側と内側の流れを同時に考えようとすると混乱しやすいです。

そんなときは、外側と内側を分けて考えると分かりやすくなります。

見るポイント確認すること
外側の文大きな流れを何回繰り返すか
内側の文外側1回ごとに何回動くか
ブロックの範囲どこまでが内側の処理か
合計回数外側の回数 × 内側の回数
条件分岐どの条件で処理が変わるか

たとえば、外側が4回、内側が3回なら、内側の処理は合計12回実行されます。

外側の回数内側の回数合計
4回3回12回

このように、ネストでは「外側が1回進むたびに、内側が最初から最後まで動く」と考えると整理しやすくなります。

ドラゴンボール風にたとえると、4つの修行エリアがあり、それぞれのエリアで3つの型を確認するイメージです。
全部で 4 × 3 = 12回 の確認になります。

break文で途中で抜ける方法を学んだ

break文は、ループやswitch文を途中で抜けるための文です。

書き方は次の通りです。

break;

break文が実行されると、現在実行しているループやswitch文を終了し、その外側へ処理が移ります。

使う場所break文で起こること
for文の中そのfor文を終了する
while文の中そのwhile文を終了する
do~while文の中そのdo~while文を終了する
switch文の中そのswitch文を終了する

繰り返し処理は、通常なら条件が false になるまで続きます。

けれど、目的のものが見つかったとき、異常を検出したとき、ユーザーが終了を選んだときなど、途中で抜けたい場面があります。

そのようなときに break文 が役立ちます。

ドラゴンボール風にたとえると、break文は「目的を達したので、この巡回任務をここで終える」という撤収の合図です。

最後まで巡回しなくてもよいと判断した時点で、ループを抜けます。

break文で意識したいこと

break文は便利ですが、どこから抜けるのかを意識することが大切です。

特にネストしたループでは、break文は基本的に一番近いループを抜けます。

状況break文で抜ける範囲
1重のループそのループを抜ける
2重ループの内側内側のループを抜ける
switch文の中そのswitch文を抜ける

break文は「プログラム全体を止める文」ではありません。

今いるループやswitch文を抜けて、その外の処理へ進む文です。

この違いを理解しておくと、break文を使ったコードの流れが読みやすくなります。

ドラゴンボール風にたとえると、1つの修行場から撤収するだけで、すべての任務が終わるとは限りません。
どの任務から抜けるのかを確認することが大切です。

continue文でその回だけ飛ばす方法を学んだ

continue文は、現在の繰り返しの残りの処理を飛ばして、次の繰り返しへ進むための文です。

書き方は次の通りです。

continue;

continue文は break文 と似ていますが、役割は違います。

動き
break文ループ全体を終了する
continue文その回の残りを飛ばして次の回へ進む

continue文は、ループ全体を終わらせる文ではありません。

その回だけをスキップして、次の繰り返しへ進む文です。

たとえば、特定の番号だけ表示しない、条件に合わないデータだけ飛ばす、エラー値だけ処理対象から外す、といった場面で便利です。

ドラゴンボール風にたとえると、continue文は「この訓練場だけは足場が悪いので、後半の型を省略して次へ進む」という指示です。

修行全体は続きます。
ただ、その回だけを飛ばします。

break文とcontinue文の違いを整理する

break文とcontinue文は、どちらもループの流れを変える文です。

ただし、変え方が違います。

ループ全体現在の回の残り次の回
break文終了する実行しない進まない
continue文続く実行しない進む

この違いは、とても重要です。

break文は「ここで終わる」です。
continue文は「今回は飛ばして次へ進む」です。

使いたい場面向いている文
探していたものが見つかったので終わりたいbreak文
終了が選ばれたのでループを抜けたいbreak文
特定の回だけ処理したくないcontinue文
不要なデータだけ無視して次へ進みたいcontinue文

ドラゴンボール風にたとえると、break文は「任務完了、撤収」です。
continue文は「この地点だけ省略、次の地点へ進む」です。

図:繰り返し文と流れを変える文の使い分け

この図が示していること

この図では、6章で学んだ文を、目的別に使い分ける考え方を示しています。

回数が決まっているなら for文 が向いています。
条件が true の間だけ続けたいなら while文 が向いています。
まず1回は必ず実行したいなら do~while文 が向いています。

繰り返しの中にさらに繰り返しや条件分岐を入れたい場合は、文のネストを使います。

途中でループを終わりたい場合は break文 を使います。
その回だけを飛ばしたい場合は continue文 を使います。

ここから分かることは、6章で学んだ文は、目的に応じて選ぶことで、コードの意図を分かりやすく表現できるということです。

6章で学んだ内容は5章の条件分岐と組み合わせて使う

6章で学んだ内容は、それだけで使う場面もありますが、5章で学んだ条件分岐と組み合わせることで、さらに実用的になります。

たとえば、繰り返しの中で if文 を使うと、条件に応じて処理を変えられます。

組み合わせできること
for文 + if文条件に応じて処理を変えながら繰り返す
while文 + break文条件に加えて途中終了もできる
for文 + continue文特定の回だけ飛ばせる
switch文 + break文値ごとの分岐を区切れる
多重ループ + if文表や模様のような複雑な処理ができる

Javaのプログラムは、1つの構文だけで作るものではありません。

順次、選択、反復を組み合わせて、目的の流れを作ります。
5章で学んだ条件分岐と、6章で学んだ繰り返し処理を組み合わせることで、プログラムでできることは一気に広がります。

ドラゴンボール風にたとえると、条件分岐は「状況を判断する力」、繰り返しは「型を何度も実行する力」です。

この2つを組み合わせると、戦場の状況に合わせて、必要な行動を何度も繰り返せるようになります。

プログラムの基本構造の中で見る6章

プログラムの基本構造は、大きく分けると次の3つです。

基本構造内容主な構文
順次上から順番に処理する通常の文の並び
選択条件によって処理を分けるif文、switch文
反復条件や回数に応じて繰り返すfor文、while文、do~while文

6章で中心となったのは、反復です。

ただし、反復だけでなく、選択と組み合わせることも重要でした。

for文の中で if文 を使う。
while文の中で break文 を使う。
多重ループの中で条件分岐を行う。
switch文の中で break文 を使って分岐を区切る。

このように、6章の学びはプログラム全体の流れを作るうえで、とても重要な位置にあります。

ドラゴンボール風にたとえると、順次は「決められた手順で進む」です。
選択は「状況に応じて技を変える」です。
反復は「同じ型を何度も出す」です。

6章では、このうち「反復」をしっかり鍛えました。

6章を学んだあとに意識したいこと

6章の内容は、文法を暗記するだけでは十分ではありません。

大切なのは、自分が作りたい処理を、どの文で表せばよいかを考えられるようになることです。

意識したいこと理由
何回繰り返すのかfor文 が向いているか判断しやすい
条件で続けるのかwhile文 が向いているか見えてくる
最低1回は必要かdo~while文 を選ぶ理由になる
途中で止めたいかbreak文 の必要性が分かる
一部だけ飛ばしたいかcontinue文 の使いどころが見える
組み合わせが必要かネストや条件分岐が必要か判断できる

たとえば、10回だけ処理したいなら for文 が自然です。

終了条件が外部の入力や状態で決まるなら while文 が合うことがあります。

まずメニューを表示してから続けるか判断したいなら do~while文 が向いています。

目的が見つかった時点で終わりたいなら break文 が便利です。

特定のデータだけ無視したいなら continue文 が役立ちます。

ドラゴンボール風にたとえると、任務の内容によって使う型を選ぶようなものです。

決まった回数の素振りなら for文。
気配がある間の警戒なら while文。
まず一度の確認が必要なら do~while文。
撤収の合図なら break文。
その場だけ省略するなら continue文。

場面に合った型を選ぶことで、処理の流れが自然になります。

図:6章の知識は今後のJava学習につながる

この図が示していること

この図では、6章で学んだ繰り返し処理が、今後のJava学習につながっていることを示しています。

配列では、要素を順番に処理するためにループを使います。
文字列処理では、文字を1つずつ確認する場面があります。
入力処理では、何度も入力を受け取る流れが必要になることがあります。

検索処理では、目的の値が見つかったら break文 で抜ける考え方が役立ちます。
不要な値を除外したいときは continue文 が使えます。
表形式の処理では、ネストしたループで行と列を扱います。

ここから分かることは、6章の内容はこの章だけで終わる知識ではなく、今後のJava学習全体を支える土台だということです。

繰り返し処理は今後のJava学習の土台になる

6章で学んだ繰り返し処理は、この先のJava学習でも何度も登場します。

配列の要素を順番に取り出すとき。
文字列の文字を1つずつ確認するとき。
入力を繰り返し受け取るとき。
ゲームのターンを進めるとき。
データを検索したり、合計や平均を求めたりするとき。

こうした処理では、繰り返しの考え方が欠かせません。

今後の学習内容6章とのつながり
配列要素を順番に処理する
文字列処理文字を1つずつ確認する
入力処理入力を繰り返し受け取る
集計処理合計や平均を求める
検索処理見つかったら break文 で抜ける
データの除外不要な値を continue文 で飛ばす
表形式の処理ネストしたループで行と列を扱う

6章は、「同じ処理を何度も行う」という基本から始まり、「必要に応じて途中で流れを変える」という応用までを学ぶ内容でした。

ここをしっかり理解しておくと、今後出てくる少し複雑なコードも、かなり読みやすくなります。

6章で身につけたい考え方

6章で特に身につけたいのは、次の考え方です。

考え方内容
繰り返しは処理を短く整理できる同じ処理を何度も手で書かなくてよい
ループには終了条件が必要いつ終わるかを考える
回数が主役なら for文初期化、条件式、変化式を見る
条件が主役なら while文条件が true の間だけ続ける
1回実行が必要なら do~while文処理後に条件を確認する
複雑な処理にはネストを使う外側と内側の役割を分ける
途中終了には break文ループやswitch文を抜ける
一部スキップには continue文その回だけ飛ばして次へ進む

このように整理すると、6章の内容はとても実践的です。

ただ繰り返すだけではありません。

必要なところで止める。
不要な回だけ飛ばす。
条件に応じて処理を変える。
外側と内側の流れを組み合わせる。

これらができるようになると、Javaのプログラムは一気に自由度が上がります。

ドラゴンボール風にたとえると、6章で学んだ内容は、戦士が型を繰り返し、状況に応じて動きを変えるための修行です。

同じ型を繰り返すだけでなく、危険なら中断し、不要なら飛ばし、広い戦場では行と列に分けて確認します。

この柔軟さが、Javaの繰り返し処理を使いこなす力につながります。