for (i = 1; i == 1;)タイプのfor文の使い方に慣れてみましょう

以下 エクセレントC言語入門より



for (i = 1; i == 1;)タイプのfor文の使い方に慣れてみましょう


使いこなせると


面白いわよ




#include <stdio.h>


int main(void) {



int zokkouhantei;


for (zokkouhantei = 1; zokkouhantei == 1;) {


printf("プログラムは実行されました\n");


}



return 0;

}


プログラムの実行結果


プログラムは実行されました

プログラムは実行されました

プログラムは実行されました







以下 エクセレントC言語入門より



このプログラムは



printf("プログラムは実行されました\n");


無限に


実行し続けるプログラムなの💖



マックス「ふはは


俺はなあ


このプログラムを止める方法をおもいついたぞ




以下 エクセレントC言語入門より



な、なんと・・・





マックス「


そのプログラムはこれだ

👇

#include <stdio.h>


int main(void) {



int zokkouhantei;



for (zokkouhantei = 1; zokkouhantei == 1;) {


printf("プログラムは実行されました\n");


zokkouhantei = 0;


}



return 0;

}


プログラムの実行結果


プログラムは実行されました


C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 12932) は、コード 0 で終了しました。

このウィンドウを閉じるには、任意のキーを押してください...


マックス「どうだ!


for (zokkouhantei = 1; zokkouhantei == 1;) {}


条件式

zokkouhantei == 1



zokkouhantei = 1


により


zokkouhanteiの値が1になることにより


1 == 1


となり


真の値をもつことにより


for (zokkouhantei = 1; zokkouhantei == 1;) {}


のブロック{}内の命令文


printf("プログラムは実行されました\n");



ひたすら


           ☆繰り返し☆



実行されるのなら・・・




           ☆繰り返し☆



を止めるには


for (zokkouhantei = 1; zokkouhantei == 1;) {}


のブロック{}内



zokkouhanteiに1以外の数値を代入すればいいじゃないか


こんなふうにな

👇


for (zokkouhantei = 1; zokkouhantei == 1;) {


printf("プログラムは実行されました\n");


zokkouhantei = 0;//🌞ここです


}


👆

ふはは


そうすれば


まず


for (zokkouhantei = 1; zokkouhantei == 1;) {}のブロック{}内の命令文


printf("プログラムは実行されました\n");


zokkouhantei = 0;//🌞ここです



の1回目の繰り返しの時



まず

printf("プログラムは実行されました\n");



が実行されるので


コマンドプロンプト画面に


プログラムは実行されました


が表示される


次に


zokkouhantei = 0;


が実行されると


1回目の繰り返しは終了するが



zokkouhantei に0が代入されたので


条件式

zokkouhantei == 1



0==1


となり


偽の値0


をもつことになるので



          2回目の


for (zokkouhantei = 1; zokkouhantei == 1;) {}


のブロック{}内の命令文

👇

printf("プログラムは実行されました\n");


zokkouhantei = 0;

👆

の繰り返し実行が


おこなわれることはないわけだ



これで



プログラムの実行結果は


プログラムは実行されました



一回表示されるだけで


止まるだろう





以下 エクセレントC言語入門


や、やるわね



そう


for (zokkouhantei = 1; zokkouhantei == 1;) {


printf("プログラムは実行されました\n");


zokkouhantei = 0;


}


のように


zokkouhantei = 0;



for (zokkouhantei = 1; zokkouhantei == 1;) {}


のブロック{}内に記述した場合


       1回だけ



printf("プログラムは実行されました\n");


zokkouhantei = 0;



が実行されることになるの😊


簡単だったかしら?



じゃあ


for文が


for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}


となっている場合


コマンドプロンプト画面には何が表示されることになるかしら?




マックス「なんだ?


👇

for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}


👆

???



とりあえず


for (zokkouhantei = 1; zokkouhantei == 1;){}なので


for (zokkouhantei = 1; zokkouhantei == 1;)のzokkouhantei = 1


により


zokkouhanteiは1の値をとり


条件式

zokkouhantei == 1



1==1


となり


真の値を持つことになるので



for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}



のブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆



1回目の繰り返し実行が始まるんだろう?



まずは


zokkouhantei = 0;


か・・・


このままだと

条件式

zokkouhantei == 1



zokkouhanteiに0が代入されているので


0==1


となり


真の値1を持たないだろう



条件式

zokkouhantei == 1



真の値1を持たないと


次の回、


for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}


のブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆


の2回目の繰り返し実行



おこなわれないんじゃないか・・・


いやまてよ


zokkouhantei = 0;

のあと


printf("プログラムは実行されました\n");


が実行されて


コマンドプロンプト画面に


プログラムは実行されました

が表示されるだろう



zokkouhantei = 1;


がおこなわれたら



zokkouhanteiに1が代入されているので



条件式

zokkouhantei == 1



1==1


となり


真の値1をもつことになるから


次の回、


for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}


のブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆


2回目の繰り返し実行はおこなわれるってわけか



2回目のfor (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文


👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆


の繰り返しが行われると


まず


zokkouhantei = 0;


が実行されるか・・・


このままだと

条件式

zokkouhantei == 1



zokkouhanteiに0が代入されているので


0==1


となり


真の値1を持たないだろう



条件式

zokkouhantei == 1



真の値1を持たないと


次の回、for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆

の3回目の繰り返し実行



おこなわれないんじゃないか・・・


いやまてよ


zokkouhantei = 0;

の実行のあと


printf("プログラムは実行されました\n");


が実行されて


コマンドプロンプト画面に


プログラムは実行されました

が表示されるだろう



zokkouhantei = 1;


がおこなわれたら


zokkouhanteiに1が代入されているので



条件式

zokkouhantei == 1



1==1


となり


真の値1をもつことになるから



次の回、for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆

3回目の繰り返し実行はおこなわれるってわけか


となると・・・


??


3回目のfor文のブロック{}内の命令文の繰り返し

4回目のfor文のブロック{}内の命令文の繰り返し

5回目のfor文のブロック{}内の命令文の繰り返し

おこることにならないか?


となると


プログラムの実行結果


プログラムは実行されました

プログラムは実行されました

プログラムは実行されました





コマンドプロンプト画面に表示されつづけることになるんじゃないか?



以下 エクセレントC言語入門


実際に


プログラムを組んで試してみましょう


そのプログラムはこちらです

👇


#include <stdio.h>


int main(void) {



int zokkouhantei;


for (zokkouhantei = 1; zokkouhantei == 1;) {


zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


}



return 0;

}


プログラムの実行結果


プログラムは実行されました

プログラムは実行されました

プログラムは実行されました


マックス「


結局


最後に


zokkouhantei に代入される数値データが


1か0になるかどうかによって


for文


for (zokkouhantei = 1; zokkouhantei == 1;){}の


ブロック{}内の命令文

👇

zokkouhantei = 0;


printf("プログラムは実行されました\n");


zokkouhantei = 1;


👆


繰り返し実行が行われるか


行われないかがきまるんじゃないか?」



以下 エクセレントC言語入門


そうなの



じゃあ

次のプログラムではプログラムの実行結果は


どうなるかしら


マックス「何😊何(#^.^#) もうどんとこ~い」


#include <stdio.h>


int main(void) {



int zokkouhantei;


for (zokkouhantei = 1; zokkouhantei == 1;) {


int a;

a = 5;


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}

}



return 0;

}



マックス「簡単、簡単


for (zokkouhantei = 1; zokkouhantei == 1;){}なので


zokkouhantei は1の値をとり


条件式

zokkouhantei == 1


1==1


となり


真の値1


を持つことになるので


for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇


int a;

a = 5;


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


👆



1回目の繰り返し実行が始まるんだろう?



まずは


int a;

a = 5;


の実行か・・・


aの値は5となると・・・


続く命令文


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


a>0



5>0


となり


真の値を1をもつことになるので



if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


のブロック{}内の命令文

👇


printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆

が実行されることになるわけだ


となると


まずは


コマンドプロンプト画面に


プログラムは実行されました


が表示される



ここだ!


次に


zokkouhantei = 1;


がおこなわれるので


zokkouhantei に1が代入される


ここで1回目の


for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇


int a;

a = 5;


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


👆



繰り返し実行はおわる


zokkouhantei に1が代入されているので


for (zokkouhantei = 1; zokkouhantei == 1;){}の


条件式


zokkouhantei == 1



1==1となり


真の値1を持つことになるから


再び


次の回、


for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇

int a;

a = 5;


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}

👆

の2回目の繰り返し実行がおこなわれるわけだ



まずは


int a;

a = 5;


により

aの値は5となる


続く命令文


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


a>0



5>0


となり


真の値を1をもつことになるので


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}


のブロック{}内の命令文

👇

printf("プログラムは実行されました\n");


zokkouhantei = 1;

👆


が実行されることになるわけだ


となると


まずは


printf("プログラムは実行されました\n");


の実行により


コマンドプロンプト画面に


プログラムは実行されました


が表示される


次に


zokkouhantei = 1;


がおこなわれ


zokkouhanteiに1が代入される


ここで


2回目の繰り返しは終わる


zokkouhanteiに1が代入されているので


for (zokkouhantei = 1; zokkouhantei == 1;){}の


条件式


zokkouhantei == 1



1==1となり


真の値1を持つことになるから



再び


次の回、


for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文

👇

int a;

a = 5;


if (a > 0) {


printf("プログラムは実行されました\n");


zokkouhantei = 1;

}

👆

の3回目の繰り返し実行がおこなわれるわけだ



となると・・・


3回目のfor文のブロック{}内の命令文の繰り返し

4回目のfor文のブロック{}内の命令文の繰り返し

5回目のfor文のブロック{}内の命令文の繰り返し

おこることになる


となると


プログラムの実行結果


プログラムは実行されました

プログラムは実行されました

プログラムは実行されました




コマンドプロンプト画面に表示されるわけだ


やった~


なんか


面白いな これ😊


いい感じじゃないか?」


























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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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