
While文の復習うんたらかんたら
今回私がいきなりwhile文をやろうと思ったのか簡単に説明します。
理由としましては、While文はループ処理と呼ばれるものなのですが、同じくループ処理にfor文というものがあります。私自身、While文は習ったのですが特に使わずずっとfor文ばっか使ってしまっていたので、復習がてらというわけです。
While文とは?
まず、While文とは最初に軽く触れたのですが繰り返し構文(ループ)というものです。
例えば、"こんにちは!"という文字を10回表示させたいときに、std::coutやprintfを使って10回書くのはいいのですが正直めんどうですよね💦
そこで活躍するのがこのWhile文です!
こいつと同じくfor文、あとdo文というものがあるですがこいつの利点、メリットは何回繰り返すかわからないときにこ奴を使います。
では早速プログラムを撃ちたいと思います!!
#include <iostream>
int main()
{
// 数字配列
int value[] = { -20,10,5,0,20,-30 };
// ここからwhile文
int i = 0;
// iが七以下になったらループをやめる
while (i < 7)
{
// 負の数だったらスキップ、じゃなっかたら条件式に戻る
if (value[i] < 0)
{
std::cout << "contince" << std::endl;
i++; // 配列のインデックスを1つ進める
continue; // 条件式に飛ぶ
}
// 0だったら
if (value[i] == 0)
{
std::cout << "break" << std::endl;
break; // ループをぬける
}
// 数字の表示
std::cout << "elem = " << value[i] << std::endl;
i++; // 配列のインデックスを1つ進める
}
std::cout << "ループを終了する" << std::endl;
};
ざっとこんな感じです。(まぁ教科書見てやったのですが…)
まず、このプログラムを説明するにはbreak文、continue文の説明をしなければいけません。
まず、continue文は「そこに来たら条件式に戻る」といいものです。
このプログラムで言うと、
if (value[i] < 0)
{
std::cout << "contince" << std::endl;
i++; // 配列のインデックスを1つ進める
continue; // 条件式に飛ぶ
}
このif文が通ったら、
while (i < 7)←この条件式に戻るということです。
次にbreak分は「通ったらぬける」というものです。
このプログラムで言うと
if (value[i] == 0)
{
std::cout << "break" << std::endl;
break; // ループをぬける
}
このif分で使っています。
コメント出の書いていますが、ここに来たらWhile文のループを抜けるということです。
この二つはいろいろと便利なのでどんどん使っていきたいですね(^^♪
さて、プログラムに戻りましょう!
このプログラム簡単に言うとvalueの配列の中に様々な数字が入っています。
その数字が負の数だったらスキップ、その数字が0だったら、While文終了ということです。
実行結果を見せるとこんな感じです。
この通り正の数しか表示されませんでした!!
いいですねぇーーー
まとめ
まぁ、今回はWhile文ってどんなのだったっけ?という疑問から来たものなので初歩的な事しかやっていないのですがせっかくなのでもっと勉強しこやつを使いこなしたいと思っています(*^^*)