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 で終了しました。

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

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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