なんとなく分かるプログ

初学者がなんとなく分かった気になれるプログ(Programming Blog)

なんとなくわかるJava入門#7 繰り返し編その①

こんにちは。

今回は繰り返し編その①です。今回の目標は「while文を理解する」です。

最初の3か月間無料で音楽聞き放題!

スッキリわかるJava入門 第3版 スッキリわかるシリーズエレコム ウェットティッシュ クリーナー 汚れ落とし 強力 消臭 除菌 110枚入り 帯電防止効果 重曹電解水が汚れを除去 ボトルタイプ 日本製 WC-JU110N2Fire TV Stick 第3世代 | HD対応スタンダードモデル | ストリーミングメディアプレイヤー【2021年発売】Amazonギフトカード チャージタイプ(直接アカウントに残高追加)ヨックモック YOKUMOKU お歳暮 御歳暮 歳暮 クリスマス ホリデー スイーツ お菓子 ギフト プレゼント 人気 洋菓子 詰め合わせ 個包装 シガール オゥ ショコラ 18本入り

 

 

これまでの復習

これまでに学習した内容について簡単に復習してみましょう。読むだけでも良いですが、可能であれば、Eclipseを起動し、次の名前のプロジェクトとJavaファイルを作って下さい。やり方が分からない人は、実際に動かしてみる編の記事を参照してください。

プロジェクト名:LoopWhile
クラス名:LoopWhileMain


public class LoopWhileMain{
	public static void main(String[] args) {
		System.out.println("復習します。");
		int sum = 0;
		sum += 2;
		sum += 2;
		sum += 2;
		sum += 2;
		sum += 2;
		System.out.println("合計:" + sum);
	}
}

このプログラムは、sumという整数型の値を扱う変数を用意し、5回だけ現在の値に2を加算し、最後に”合計:10”と出力させます。「+=」は現在の変数の値に右辺の値を加算するという意味でしたね。この演算子については演算についてで説明しているので、分からない方は参照して頂けたらと思います。

要は5回同じ処理を繰り返すことを目的としているプログラムでしたが、これが1万回繰り返したい場合、どのように記述すべきでしょうか?1万行の加算処理を記述しなければいけないのでしょうか?繰り返しであるということが分かっていれば読む必要もありませんが、もし他者の書いたプログラムだった場合どうなるでしょうか?本当に同じ処理が書かれているという保証はないので、1万行の処理を確認する必要があります。

このような同じ処理を繰り返し実行するプログラムを簡素にするための構文Javaには用意されています。主には、while文for文の2種類がありますが、今回はwhile文を学習していきます。

 

繰り返し処理 - その①

while文

while文を利用することで、特定の条件を満たしている間、繰り返し、同じ処理を実行することが出来ます。

今回もプログラムの書き方から覚えていきましょう。

このような while から始まるひとまとまりの文のことを、「while文」と呼びます。

条件式には、結果がboolean型の値(つまり、true or false)になるような式を記述します。典型的なものとしては、比較演算子( == とか、> とか)が用いられている式を記述します。

実行順としては、まず、この条件式が実行され、その結果が真であれば、直後の「{}」の中の記述が実行されます。もし、偽であれば、「{}」の後の処理が実行されていきます(つまり、繰り返し処理は終了)。

 

では、復習のプログラムの繰り返し処理について、このwhile文を使って確認してみましょう。以下のようにプログラムを書き換えます。


public class LoopWhileMain {
public static void main(String[] args) { System.out.println("復習します。"); int sum = 0; int count = 0; while( count < 5 ) { sum += 2; count++; } System.out.println("合計:" + sum); } }

新たに「count」という変数が登場しましたが、これは繰り返しの回数をカウントするための変数として用意しました。

while文の条件式には「 count < 5 」と書かれています。最初はcountの値は0なので、「{}」内の処理が実行されます。この「{}」内では、「count++」と書かれていますが、これはcountの現在の値に1加算するという意味です(忘れている方は演算についてで復習しましょう)。このcountの値が5になったとき、while文の繰り返しは終了します。

では、なぜ「cont <= 5 (countが5以下)」ではなく、「count < 5 (countが5未満)」なのでしょうか?「{}」内の処理はcountは、 0、1、2、3、4の時に実行されます。つまり目的通り5回繰り返されます。もし条件式が「count <= 5」の場合は、countが 0、1、2、3、4、5の時に実行されるので、6回繰り返されてしまいます。もちろん、countの初期値が1の場合は、「count <= 5」で良いのですが、プログラムでは慣例として0を初期値として繰り返し文を記述することがよくあります。

 

以上のように、while文を使うことで、これまでは単純に上から下に行われていた実行の流れが、条件を満たす間繰り返し実行するといった流れを実現できるようになります。

繰り返しの処理の流れのイメージ

こまけぇハナシ

特殊なwhile文として、do-while文といったものがあります。while文は、まず最初に繰り返しの条件判定を行うので、最初から条件を満たさない場合は「{}」内は1度も実行されません。一方で、do-while文の場合は、「{}」を実行してから、繰り返しの条件判定が行われるので、必ず1度は「{}」内の処理が実行されます。

do-while文

do-while文は次のように記述します。

public class LoopWhileMain {
    public static void main(String[] args) {
        System.out.println("復習します。");
        int sum = 0;
        int count = 0;
        do{
            sum +=2;
            count++;
        }while(count < 5);
}

最後のwhileの後にセミコロンを忘れないように注意しましょう。

終わりに

といことで、繰り返し編その①は以上です。次回は繰り返し編その②です。

ほんじゃ、また。
励みになるので、良ければ下の☆ボタン、読者になるボタンを押していって下さい。