for (i = 1; i == 1;)タイプのfor文の使い方に慣れてみましょう その2
🌲😊つづきです😊🌲
マックス「
結局
最後に
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;) {
zokkouhantei = 0;//🌞ここに注目です
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
}
return 0;
}
マックス「??
なんかさっきのプログラムと同じじゃないか?
??
簡単、簡単
for (zokkouhantei = 1; zokkouhantei == 1;){}なので
zokkouhantei は1の値をとり
条件式
zokkouhantei == 1
は
1==1
となり
条件式
zokkouhantei == 1
は
真の値1
を持つことになるので
for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
👆
の
1回目の繰り返し実行が始まるんだろう?
で
いきなり
zokkouhantei = 0;
か・・・
このままだと
条件式
zokkouhantei == 1
は
0==1
となって偽の値をもち
次の回、2回目のfor (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 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;
は実行されない
・・・???
となると
コマンドプロンプト画面に
プログラムは実行されました
は表示されない
し
zokkouhantei = 1;
も
行われない
となると
さっき実行した
zokkouhantei =0;
が効いてくるんじゃないか
zokkouhantei に格納されている値は0のままとなるので
for (zokkouhantei = 1; zokkouhantei == 1;){}の
条件式
zokkouhantei == 1
は
0==1となり
偽の値1をもつことになる
となると
次の回、2回目の
for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
👆
の繰り返し実行はおこなわれず
繰り返しはおわる
となると
コマンドプロンプト画面には何も表示されないじゃないか
ただ
for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
👆
が
🌞1回🌞
は実行されることになるわけだ
つまり
🌞for文{}のブロック{}内の命令文🌞
が
🌞1回🌞
だけは
おこなわれるってわけだ
まあ
もともと
for (zokkouhantei = 1; zokkouhantei == 1;)
に
zokkouhantei = 1
が
設定されているので
zokkouhantei == 1
は
1==1
となり
真の値1をもつことになるので
🌞1回🌞
だけは
for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
👆
が
実行されるのはあたりまえか
if (a < 0)のaの値によって
zokkouhantei = 1;
が実行されるかどうかが決まる
つまり
条件式
zokkouhantei == 1
が真の値1を持つかどうかが決まる
つまり
条件式
zokkouhantei == 1
が真の値を持つかどうかで
つまり
for (zokkouhantei = 1; zokkouhantei == 1;){}のブロック{}内の命令文
👇
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
👆
が
実行されるかどうかがきまるってわけだ
以下 エクセレントC言語入門より
ではでは(*´▽`*)
今のプログラムを実行してみましょう
#include <stdio.h>
int main(void) {
int zokkouhantei;
for (zokkouhantei = 1; zokkouhantei == 1;) {
zokkouhantei = 0;
int a;
a = 5;
if (a < 0) {
printf("プログラムは実行されました\n");
zokkouhantei = 1;
}
}
return 0;
}
プログラムの実行結果
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 23668) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます