3.2 while文 -紫帽子のC++



例題

While文を使って1~10までの整数の和を求めるプログラムを作成してください。




while文の使い方

前回は例題についてfor文で作りましたが、今回はwhile文を作って繰り返し処理をしてみます。
while文は以下のように記述します。

while(条件式){
 //内部処理
}


while文は以下のように条件式が成り立たなくなるまで処理を続けます。
whileのフローチャート




実際のプログラムを用いた解説

ここで、1~10までの数字をfor文で表示するプログラムを考えます。
for文で変数iを1~10まで変化させて表示すればいいので、フローチャートを作成すると以下のようになります。
1~10までの表示のフローチャート

これをコードにすると次のようになります。

#include <iostream>

int main() {
	int i = 1;
	while (i <= 10) {
		std::cout << i << std::endl;
		i = i + 1;
	}
}





forとwhileの使い分け

for文は繰り返しの回数があらかじめ決まっているとき、そうでないときはwhileというのが主流です。
私はforが使いにくいときにwhileを使うといったようにしていますが、絶対的なルールはないはずなので、書きやすい方を採用すればよいと思います。

forを使うとき

  • 配列(第4章で解説予定)を使うとき
  • n回だけ処理するなど、繰り返し回数が固定のとき
  • 数学の\sumの記号などのように、指定範囲の値を使った処理をしたいとき


whileを使うとき

  • 繰り返しを回数ではなく、特定の条件を満たしたときに終了したいとき(例:〇〇時まで、HPが〇〇以下になるまで)
  • 無限ループのときなど





例題の解答


解答例(タッチで開きます)

ソースコード

#include <iostream>

int main() {

	// 合計を格納する変数
	int sum = 0;

	int i = 1;
	while (i <= 10) {
		sum += i;
		i++;
	}

	// sumを表示
	std::cout << "sum = " << sum << std::endl;
}


実行結果

sum = 55







リンク

⇐Back(3.1 for文) ホーム ⇒Next(繰り返し処理の問題集(準備中))