for文は命令文を繰り返し実行するシステムとなっています
for文は命令文を繰り返し実行するシステムとなっています
#include <iostream>
using namespace std;
int main() {
int a;
for(a=1; a<=3; a++){
cout << "このcout出力表示は"<<a<<"回目です\n";
}
return 0;
}
ビルド実行結果
このcout出力表示は1回目です
このcout出力表示は2回目です
このcout出力表示は3回目です
てんC 「for文の登場です。」
ソーラー「なんだろうか? このプログラムは?
僕もはじめてみる?けど・・・
なんだかこのプログラムには親しみを感じるなあ
個人的な思いだけど、このプログラムには神聖なものを
かんじるよ。
このプログラムを紹介できて幸せだよ。」
てんC「for文はプログラムの中で
とてもよく使用されています。」
ソーラー 「そういえば
このようなプログラムは東方風シューティング
のプログラムの中でもみかけたことがあるよ。
そのほかにも本当いろんなところでみかけてきたんだ・・・
やっとここまできたか・・・
このプログラムは東方風シューティングゲームを
つくりはじめる第1歩、になるとおもうな。」
てんC 「では、早速このプログラムの使い方をみんなで
探っていきましょう。
まず、このプログラムの
for(a=1; a<=3; a++)
ここの部分ですね。
ここで
a=1は初期化式
a<=3は条件式
a++は継続処理方法
というものをあらわしています。」
ソーラー「
a=1は初期化式
a<=3は条件式
a++は継続処理方法
?
意味がよくわからないね。
てんC「
for(a=1; a<=3; a++){
cout << "このcout出力表示は"<<a<<"回目です\n";
}
は
この ブロック{ }で囲まれた命令文
cout << "このcout出力表示は"<<a<<"回目です\n";
のaの値を1,2,3と変えながら
3回実行する命令文なのです。
具体的に
for(a=1; a<=3; a++)は
どのようなシステムになっているかというと
最初の初期化式a=1により
まずfor(a=1; a<=3; a++)につづけて記述された
命令文
cout << "このcout出力表示は"<<a<<"回目です\n";
のaに1が代入された
cout << "このcout出力表示は"<<1<<"回目です\n";
が実行されます
その結果
このcout出力表示は1回目です
が表示されます。
次に継続処理方法a++ですが
aに代入される値を1ずつ増加させるはたらきがあります。
継続処理方法a++でaの数値を1つずつ増やすので
a=1の次は
a=2が
変数aに代入されて
次は
cout << "このcout出力表示は"<<2<<"回目です\n";
が実行され
このcout出力表示は2回目です
が
このcout出力表示は1回目です
につづけて
コマンドプロンプト画面に表示されることになります。
さらに
継続処理方法a++によりaの数値は1増加され
a=2の次は
a=3が
変数aに代入されて
cout << "このcout出力表示は"<<3<<"回目です\n";
が実行され
このcout出力表示は3回目です
が
このcout出力表示は1回目です
このcout出力表示は2回目です
につづいて
コマンドプロンプト画面に表示されることになります。
次に継続処理方法a++によりaの数値は1増加され
cout << "このcout出力表示は"<<4<<"回目です\n";
が実行されるはずですね。
ここで条件式a<=3がでてきます。
条件式a<=3ですが
条件式a<=3はaの値が3以下のときのみ
for()に続く命令文が実行されるよう制限する働きがあります。
この場合for()に続く命令文は
cout << "このcout出力表示は"<<a<<"回目です\n";
ですね。
継続処理方法a++によりaの数値は
a=1の状態から1ずつ増加され
変数aの取る値は
a=4に到達するのですが
条件式a<=3により
aの値が3以下のときのみ
for文に続く命令文が実行されるよう制限されているので
aの値が4をとったときの
cout << "このcout出力表示は"<<4<<"回目です\n";
は実行されないことになります。
ですので
ビルド実行結果に
このcout出力表示は1回目です
このcout出力表示は2回目です
このcout出力表示は3回目です
に続いて
このcout出力表示は4回目です
が表示されることはありません。
for文による命令文の繰り返しは
cout << "このcout出力表示は"<<1<<"回目です\n";
cout << "このcout出力表示は"<<2<<"回目です\n";
cout << "このcout出力表示は"<<3<<"回目です\n";
までが実行されて
cout << "このcout出力表示は"<<4<<"回目です\n";
は実行されません。
よって
ビルド実行結果は
コマンドプロンプト画面に
このcout出力表示は1回目です
このcout出力表示は2回目です
このcout出力表示は3回目です
と表示されます。
」
ソーラー「
その際、aの動きをよくみてくださいよ(^^)/🌞」
てんC「
a=1 ,1回目の繰り返しのときは
このcout出力表示は1回目です
と実行表示され
a=2, 2回目の繰り返しのときは
このcout出力表示は2回目です
と実行表示され
a=3,3回目の繰り返しのときは
このcout出力表示は3回目です
と実行表示されていますね。。
このように
a=1と,1回目の繰り返しは対応しており
同様に
a=2と, 2回目の繰り返しは対応しており
同様に
a=3と,3回目の繰り返しは対応しています。
aの値に応じて
cout << "このcout出力表示は"<<a<<"回目です\n";
の実行結果が変化しているところが
このfor文をつくった技術者さんの魂の萌えどころです。
もうちょっと詳しくみていきますと
a=2に注目すると
a=2と, 2回目の繰り返しにおいては
for文の中にふくまれる命令文
cout << "このcout出力表示は"<<a<<"回目です\n";
の変数aも2に変化しています。
よって
cout << "このcout出力表示は"<<2<<"回目です\n";
の命令により
このcout出力表示は2回目です
がコマンドプロンプト画面に表示されますね。
つまり、
『a=n回目の命令を下すときは
cout << "このcout出力表示は"<<a<<"回目です\n";
のなかの変数aの値もnに変化します。』
ですので、
次のプログラムのように
変数aが記述されていない場合は
同じ文章が
1回目も2回目も3回目もコマンドプロンプト画面にあらわれてきます。
#include <iostream>
using namespace std;
int main() {
int a;
for(a=1; a<=3; a++){
cout << "このcoutはcoutちゃんです"<<"\n";
}
return 0;
}
ビルド実行結果
このcoutはcoutちゃんです
このcoutはcoutちゃんです
このcoutはcoutちゃんです
」
ソーラー 「なんか for文は とってもわかりやすい命令文ですね。
では逆に
今、命令文を何回目繰り返しているのかを
cout<<を使って表示したいときは
前のプログラムで登場した
cout << "このcout出力表示は"<<a<<"回目です\n";
のように
変数aを記述しておけばいいということになるのかな・・
当然だけど
変数aを記述しておけばいいといっても
次のプログラムのように→」
#include <iostream>
using namespace std;
int main() {
int a;
for (a = 1; a <= 3; a++) {
cout << "このcout出力表示はa回目です\n";
}
return 0;
}
ソーラー「→
cout>>につづく" "に変数aをいれてしまっては
このcout出力表示はa回目です
このcout出力表示はa回目です
このcout出力表示はa回目です
と
このcout出力表示はa回目ですの文章が
3回表示されるだけになるね😊
」
てんC 「そうなんです。
aの値を変えながら命令文を実行したいときは
変数aを
cout << "このcout出力表示は"<<a<<"回目です\n";
のように記述するようにしましょう。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます