それでは for文の8つの基本パターンで遊んでみる。

前回は失礼いたしました。


再開いたします。


サンプルプログラムはこちらでした。


#include <iostream>


using namespace std;


int main() {


int a=1;


for(a=1; a<=3; a++){


cout << "このcout出力表示は" << a << "回目です\n";


}


return 0;

}


このプログラムにおいて


for(a=1; a<=3; a++)の部分を


次の


for(;;)


for(; ; a++)


for(; a<=3;)


for(a=1; ; )


for(; a<=3; a++)


for(a=1;;a<=3; )


for(a=1;; a++)


for(a=1; a<=3; a++)


の別の形式に置き換えた場合


どのようなビルド実行結果が得られるでしょうか?


きゃはっ💖


う~ん それでは


とりあえず


次から次へと


この8つのパターンを1つずつ切り替えて


プログラムに書き込みながら


ビルド実行してみます。


まずは


for(;;)の場合


#include <iostream>


using namespace std;


int main() {


int a = 1;


for (; ; ) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です




for (; ;)と記述された場合では


int a=1;


により


cout << "このcout出力表示は" << a << "回目です\n";


aに


1が代入された


このcout出力表示は1回目です


が繰り返し表示されています。


for (; ; )


の中に


初期化式が記述されていないので


int a=1;


が実行されたときの


aの値は1のままというわけです。


そして


a++もないのでaの値は1から増加しません。


条件式もかかれていないので


繰り返しはとまりません。




for(; ; a++)の場合




#include <iostream>


using namespace std;


int main() {


int a = 1;


for (; ; a++) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}



ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です

このcout出力表示は4回目です

このcout出力表示は5回目です

このcout出力表示は6回目です

このcout出力表示は7回目です

このcout出力表示は8回目です

このcout出力表示は9回目です

このcout出力表示は10回目です

このcout出力表示は11回目です




このプログラムではa++が継続処理方法に入っているので


変数aの値が1ずつ増加しながら


cout << "このcout出力表示は" << a << "回目です\n";


をくりかえしていますね。


int a=1;

により


このcout出力表示は1回目です


から繰り返しがはじまっています。


この場合も条件式が記述されていないので


繰り返しがとまることはありません。



はいっ、さあ😝 


お次は



for(; a<=3;)の場合です。




#include <iostream>


using namespace std;


int main() {


int a = 1;


for (;a<=3 ; ) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}



さあ、このプログラムのビルド実行結果はどうなるでしょうか?



ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です




このfor (;a<=3;)では


int a=1;


により


cout << "このcout出力表示は" << a << "回目です\n";



1が代入された


このcout出力表示は1回目です


が繰り返し表示されています。


for (;a<=3 ; )


の中に


初期化式が記述されていないので


aの値は1からはじまります


そして


a++も記述されていないのでaの値は1から増加しません。


条件式はa<=3


となっていますが


aの値はずっと1なので


条件式はa<=3


を満たし続けており


繰り返しはとまりません。



そういうことなの。



では


for(a=1; ; )の場合はどうでしょうか?


#include <iostream>


using namespace std;


int main() {


int a = 1;


for(a=1; ; ) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です




for (a=1; ; )の場合では


int a=1;


のあとに


for文の中の初期化式


a=1により


aの値は1になっていることにより


cout << "このcout出力表示は" << a << "回目です\n";



1が代入された


このcout出力表示は1回目です


から


繰り返しがはじまります


for (a=1; ; )


の中に


a++は記述されていないのでaの値は1から増加しません。


条件式もかかれていないので


繰り返しはとまりません。





for(; a<=3; a++)の場合




#include <iostream>


using namespace std;


int main() {


int a = 1;


for(; a<=3; a++) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です



for(; a<=3; a++)の場合では


int a = 1;


により


命令文

cout << "このcout出力表示は" << a << "回目です\n";


に1が代入され


このcout出力表示は1回目です



コマンドプロンプト画面に表示されます。


次に


継続処理方法


a++


により


aの値は1増加して2となり


cout << "このcout出力表示は" << a << "回目です\n";


のaに2が代入されたものが実行されます。


ですので


このcout出力表示は2回目です



コマンドプロンプト画面に表示されます。



次に


継続処理方法


a++


により


aの値は1増加して3となり


cout << "このcout出力表示は" << a << "回目です\n";


のaに3が代入されたものが実行されます。


ですので


このcout出力表示は3回目です



コマンドプロンプト画面に表示されます。



次に


継続処理方法


a++


により


aの値は1増加して4となりますが


条件式は


a<=3


となっているため


cout << "このcout出力表示は" << a << "回目です\n";



実行されません。



ですので


このcout出力表示は4回目です



コマンドプロンプト画面に表示されることはなく


for文による


cout << "このcout出力表示は" << a << "回目です\n";


の繰り返し実行は終了することになります。



ですので


ビルド実行結果は


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です


となります


それでは


for(a=1; a<=3; )の場合はどうなるのでしょうか。



#include <iostream>


using namespace std;


int main() {


int a = 1;


for(a=1; a<=3; ) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です

このcout出力表示は1回目です



このように


このcout出力表示は1回目です


が繰り返し表示されます


for(a=1; a<=3; )の場合では


a=1;


により


aの値は1となっています。


そして


a++が記述されていないので


aの値は1から変化することはありませんの。


ですから


aの値は


a<=3をずっと満たしています


ですので


cout << "このcout出力表示は" << a<< "回目です\n";



aに1が代入された


cout << "このcout出力表示は" << 1<< "回目です\n";


の繰り返し実行が止まることはなく


このcout出力表示は1回目です


が、ずっと繰り返される、というわけなのですね。




では では・・・  🐤🐤🐤・・・ 




for(a=1;; a++)の場合は?




#include <iostream>


using namespace std;


int main() {


int a = 1;


for(a=1;; a++){


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です

このcout出力表示は4回目です

このcout出力表示は5回目です

このcout出力表示は6回目です

このcout出力表示は7回目です

このcout出力表示は8回目です

このcout出力表示は9回目です

このcout出力表示は10回目です

このcout出力表示は11回目です

このcout出力表示は12回目です



for(a=1;; a++)の場合では


a=1;


により


cout << "このcout出力表示は" << a << "回目です\n";



aに1が代入された


cout << "このcout出力表示は" << 1 << "回目です\n";


から


cout << "このcout出力表示は" << a << "回目です\n";


の繰り返し実行が始まります。



そして


継続処理方法a++により1回


命令文


cout << "このcout出力表示は" << a << "回目です\n";


が実行されるごとに


aの値は1ずつ増加していきます。



こちらも条件式の記述がないので繰り返しが止まることはありません。



そして いよいよ😊



こちら 


一般的な


初期化式、条件式、継続処理方法が


すべて記述されている


for(a=1; a<=3; a++)の場合です。


楽しみですね。


#include <iostream>


using namespace std;


int main() {


int a = 1;


for(a=1; a<=3; a++) {


cout << "このcout出力表示は" << a << "回目です\n";


}

return 0;

}


ビルド実行結果


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です



for(a=1; a<=3; a++)の場合では


初期化式

a=1;


により


命令文

cout << "このcout出力表示は" << a << "回目です\n";


に1が代入され


このcout出力表示は1回目です



コマンドプロンプト画面に表示されます。


次に


継続処理方法


a++


により


aの値は1増加して2となり


cout << "このcout出力表示は" << a << "回目です\n";



aに2が代入されたものが実行されます。


ですので


このcout出力表示は2回目です



コマンドプロンプト画面に表示されます。



次に


継続処理方法


a++


により


aの値は1増加して3となり


cout << "このcout出力表示は" << a << "回目です\n";


のaに3が代入されたものが実行されます。


ですので


このcout出力表示は3回目です



コマンドプロンプト画面に表示されます。



次に


継続処理方法


a++


により


aの値は1増加して4となりますが


条件式は


a<=3


となっているため


cout << "このcout出力表示は" << a << "回目です\n";



実行されません。



ですので


このcout出力表示は4回目です



コマンドプロンプト画面に表示されることはありません


ここで


for文による


cout << "このcout出力表示は" << a << "回目です\n";


の繰り返し実行は終了することになり


ビルド実行結果は


このcout出力表示は1回目です

このcout出力表示は2回目です

このcout出力表示は3回目です


となります。




みなさん、いかがでしたでしょうか?




8つのfor文のパターン


for(;; )

for(; ; a++)

for(; a<=3;)

for(a=1; ; )

for(; a<=3; a++)

for(a=1; a<=3; )

for(a=1;; a++)

for(a=1; a<=3; a++)


の違いが


おわかりになられたでしょうか?





1770年 1月  フランス





             ミルシーズが御贈りいたしました。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る