未分類

for文のしくみを知る

投稿日:2020年7月22日 更新日:

激レアキャラをゲットするまでは・・・→レアガチャを引き続ける

私たちの生活に朝起きる、歯を磨く、朝食を食べる、学校に行く・・・といった「繰り返し処理」を行っています。

Javaでは、このような繰り返し文(ループ文)と呼ばれる構文で記述することができます。

for文・white文・do~white文の3つのバリエーションがあります。

for(初期化の式1; 繰り返すかどうか調べる式2; 変化のための式3){

  1. 文;   ブロック内の文を順に繰り返し処理します。
  2. 文;   ・・・
  3. 文;   ・・・

それでは、実際にfor文を使ってみましょう。

  1. 式1にしたがって、変数iを初期化する
  2. 式2の条件がtrueであれば、ブロック内を処理して、式3を処理する
  3. 式2の条件がfalseになるまで2を繰り返す

つまり、このfor文では変数iを1で初期化したあと、条件i<=5がfalseになるまでi++を繰り返し、「ダンジョンを探索しています。」と出力しているのです。

for文を応用する

プログラムを実行すると、入力した数だけ*が出力されました。for文を使って、入力した数と同じだけ*の出力を繰り返して処理したのです。

変数iの値は1から1つずつ増えていきますから、1から入力した数値までの攻撃力を合計した数を求めることができます。

  1. 回目の攻撃  0 + 6 = 6
  2. 回目の攻撃  6 + 5 = 11
  3. 回目の攻撃  11 + 7 = 18
  4. 回目の攻撃  18 + 1 = 19
  5. 回目の攻撃 19 + 2 = 21

white文のしくみを知る

white文では、条件がtrueである限り、指定した文を何度でも繰り返し処理することができます。

条件i<=5がfalseになるまで繰り返しています。11行目の「i++」を記述しないと永久に繰り返されてプログラムが終了しなくなります。条件の記述には十分注意してください。

do~white文のしくみを知る

もうひとつの構文であるdo~white文を取り上げます。

white文と異なるところは、

条件を判断する前にブロック内の処理を行う

ということです。white文では処理の最初の条件がfalseであれば、一度もブロック内の処理が行われません。一方、do~white文では最低1回は必ずブロック内の処理が行われます。

do~white文を使っていますが、Sample6_02_5と同じ処理になっています。同じ処理であってもさまざまな構文を使って、書きあらわせる場合があります。

for文をネストする

これまで学んできた条件判断文、繰り返し文などの複数の文を埋め込んでネストにする(入れ子)ことができます。

外側のループを1回処理するたびに、

内側のループは3回処理されている。

外側のループは全部で5回処理されている。

iをインクリメントするループ文が1回処理される

たびに、jのインクリメント文が(3回)行われている。

このように文をネストすると、複雑な処理でも記述することができます。

if文などと組みあわせる

上記のコードは2つのfor文と1つのif~else文を使っています。〇または●を出力するたびに、boolean型の変数b1に交互にtrueとfalseを代入します。次にどちらの文字を出力するのかを、if文中の「b1==false」という条件を評価することで判断できます。

break文のしくみを知る

Javaには、繰り返し処理の流れを変更する文として、break文とcontinue文があります。まず、break文から学ぶことにします。

処理の流れを強制的に終了し、そのブロックから抜ける

という処理を行う文です。

上記のコードはユーザーが入力した回数でbreak文を実行し、ループを強制的に終了させました。6回目以降の繰り返し処理は行われていません。

switch文の中でbreak文を使う

入力した整数のスコアによっていろいろなメッセージを表示するプログラムです。

break文の挿入位置によって処理をコントロールできます。

continue文のしくみを知る

continue文は、繰り返し内の処理を飛ばし、ブロックの先頭位置に戻って次の処理を続けるという文です。

処理を飛ばす回数として「3」を入力してみました。すると、3番目のダンジョン探索処理はcontinue文によって強制的に終了させられ、ブロックの先頭にうつります。

この章では繰り返し処理や、処理の流れを変更する構文を学びました。これまで学んできた構文とあわせて使うと、さまざまな処理を行うプログラムを記述できるでしょう。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サンプルイメージ

メソッドの引数

メソッドでさらに柔軟な処理を行うことができます。メソッドを呼び出す際に、 呼び出し元からメソッド内に何か情報(値)を渡し、その値に応じた処理を行う ということができます。メソッドに渡す情報を引数といい …

サンプルイメージ

練習問題(配列)解答例

配列を利用すると、同じ種類の多くのデータを扱うことができます。たくさんのデータをまとめ、簡単に管理することができます。今はすべてを理解しようとせずに前に進みましょう。 大切なのは、プログラミングを勉強 …

サンプルイメージ

練習問題

練習問題  HelloWorld.java 以下のプログラムの空欄を埋めて実行結果のように表示させてください。 練習問題  ChangeXY.java 下のプログラムの空欄を埋めてアイテムAとアイテム …

サンプルイメージ

コンストラクタのしくみ

                 クラスの中には、フィールドとメソッドのほかに、コンストラクタと呼ばれるものを記述することができます。 コンストラクタは、メソッドに大変よく似ています。しかし、コンスト …

サンプルイメージ

練習問題(クラスの機能)

      練習9-1 下図の様な実行結果となるように下のプログラムの空欄を埋めて実行してください。 練習9-2 下記のような実行結果となるようにShohinクラスを作成してください。 練習9-3 下 …