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文のブロック{}内の命令文の繰り返し
・
・
・
・
・
が
おこることになる
となると
プログラムの実行結果
プログラムは実行されました
プログラムは実行されました
プログラムは実行されました
・
・
・
・
・
が
コマンドプロンプト画面に表示されるわけだ
やった~
なんか
面白いな これ😊
いい感じじゃないか?」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます