while文のループ中で1回だけ実行する処理を行うプログラムの書き方

プログラミングでは欠かせないループ文。

ループに使う構文としてwhile文とfor文が用意されているプログラミング言語が多いですが、全ての処理をループ中毎回繰り返すのではなく、ループの中で1回だけ実行したい処理を書きたいときもあるでしょう。

例えばループ内での変数の初期化などがそうですね。

while(flag == 0){
    int num = 0;
   
    //numを使った何らかの処理
   
}

上記プログラムはwhile文のループ内で変数numを初期化していますが、ループ中は毎回numを初期化するコードになっているので思い通りにプログラムが動いてくれません。

そこで今回は、while文のループ中に1回だけ実行する処理を行う書き方を簡単に紹介します。

目次から探す

ループ中に1回だけ行う処理の書き方

分からない方はどうやって書けばいいのか見当もつかないかもしれません。

ですが、実はものすごく簡単に実装できます。まずは下記のコードを見てみましょう。

int flag = 0;
int initFlag = false;
while (flag == 0) {
	if (initFlag == false) {
		//1回だけ行う処理
		initFlag = true;
	}
	//毎回行う処理
}

解説

まず、2行目でループ中に1回だけ行う処理の判定に使うフラグ変数initFlagを宣言し、falseで初期化しています。

このinitFlag変数を4行目のif文で使い、initFlag == falseは真なのでif文内の処理を実行します。

このif文内で必ずinitFlag == falseが真にならないように値を書き換えてください。

initFlag = true;

これにより、次のループ以降はif文内の処理が実行されなくなるため、whileループ中に1度だけ実行する処理が完成します。

while文の外でif文の判定用変数を用意しておくことで簡単にループ中に一回だけ実行する処理を実装できるので、とても簡単に実装できます。

簡単かつ、ループ処理と分岐処理を組み合わせる上で必須となる基礎テクニックなので、覚えておくといいでしょう。

目次から探す