for文もwhile文もdo while 文もif文の集まりで表現することができます



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


if文の条件式を1にする命令文を実行することが


if文が実行されるための



       "フラグをたてる(定められた条件を満たす)"



ことになるのでした


ところでマックスさん


条件式をもつ


if文

for文

while文


は条件式の値が1の値をとると


実行されることになります


そう


if文

for文

while文



同じ構造をした仲間なのです



そして


for文

while文


if文を用いて


表現することができます



マックス「そうなのか・・・



if文

for文

while文



同じ構造をした仲間だったのか




にゃはは


じゃあ

このプログラムで登場してくる

👇

#include <stdio.h>


int main(void) {


int a = 0;


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


printf("実行されました\n");


}

return 0;

}


プログラムの実行結果


実行されました

実行されました

実行されました


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

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



のなかの


for文

👇

int a = 0;


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


printf("実行されました\n");


}




if文を用いて


次のようにあらわされたりして😊

👇


a=0;


if(a<3){


printf("実行されました\n");


}


a=1;


if(a<3){


printf("実行されました\n");


}


a=2;


if(a<3){


printf("実行されました\n");


}



マックス「どうだあ


うまい具合にfor文をif文の集まりに分解できただろう


うははははははは~」



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




そう


ここでは


a=0;


を実行すると


if(a<3){


printf("実行されました\n");


}


が実行されることになります


a=0;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されることの条件を満たしています


つまり


a=0;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されるための


       "フラグをたてる(定められた条件を満たす)"


ことになります


マックス「そうか!


た、確かに そうだな」



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



次に



a=1;


を実行すると


if(a<3){


printf("実行されました\n");


}


が実行されることになります


a=1;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されることの条件を満たしています


つまり


a=1;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されるための


       "フラグをたてる(定められた条件を満たす)"


ことになります



次に



a=2;


を実行すると


if(a<3){


printf("実行されました\n");


}


が実行されることになります


a=2;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されることの条件を満たしています


つまり


a=2;


を実行することは


if(a<3){


printf("実行されました\n");


}


が実行されるための


       "フラグをたてる(定められた条件を満たす)"


ことになります



マックス「


for文


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


printf("実行されました\n");


}



を実行することは


3回フラグをたてて同じif文を実行しているってわけだ



ははあ もしや・・・


条件式が絡んでくる


for文やwhile文は


if文で置き換えられる・・・


だって


条件式が0の値をとるか

条件式が1の値をとるか


によって


for文やwhile文が実行されるか実行されないか


がきまるだろう


それを


表現するには


if文を


使うしかないじゃないか



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



もう 冴えてる マックスさん


なんて 素敵な人なの




マックス「やっぱりぃぃぃぃぃっ



そうだろ そうだろう😊



にゃはは


じゃあ


while文を用意してっと

👇

#include <stdio.h>


int main(void) {


int a = 0;//🌞初期化式

    //👇🌞条件式

while (a < 3) {


printf("実行されました\n");


a++;//🌞継続処理方法

}

return 0;


}


プログラムの実行結果


実行されました

実行されました

実行されました


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

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





このプログラムの中の


while文

👇

int a = 0;//🌞初期化式


while (a < 3) {


printf("実行されました\n");


a++;

}




if文を用いて


次のようにあらわされたりして😊

👇


a=0;


if(a<3){


printf("実行されました\n");


}


a=1;


if(a<3){


printf("実行されました\n");


}


a=2;


if(a<3){


printf("実行されました\n");


}



マックス「どうだあ


うまい具合にwhile文をif文の集まりに分解できただろう


まあ


for文もwhile文も


同じ


命令文の集まりになっちゃったよ~ん


うははははははは~」




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



そうです



このことは


for文もwhile文も構成している機械語プログラムが全く同じ機械語で


表現できているということなのですが・・


実際に


for文もwhile文も


初期化式や条件式や継続処理方法の記述の仕方が


違っていても


コンパイルすると


全く同じ機械語で表されることになります



マックス「そうなのか😊


for文とwhile文は表面上の記述の仕方がちがうだけってことか


にゃるほどね


ふはははははは


そうか


そうだ・・・


次は


do while文をif文であらわしてみるか


参考にするプログラムはこれなんかいいんじゃないか?

👇

#include <stdio.h>


int main(void) {


int a = 0;//🌞初期化式

do {


printf("実行されました\n");


a++;//🌞継続処理方法

} while (a < 3);//🌞条件式



return 0;


}



プログラムの実行結果


実行されました

実行されました

実行されました


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

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



マックス「


このプログラムの中の


do while文

👇

int a = 0;//🌞初期化式

do {


printf("実行されました\n");


a++;//🌞継続処理方法

} while (a < 3);//🌞条件式




if文を用いて


次のようにあらわされたりして😊

👇


int a = 0;


printf("実行されました\n");


a=1;


if(a<3){


printf("実行されました\n");


}


a=2;


if(a<3){


printf("実行されました\n");


}



マックス「どうだあ


うまい具合にdo while文をif文の集まりに分解できただろう


ここでのポイントは


int a = 0;


printf("実行されました\n");



int a = 0;

の後の命令文は


if(a<3){


printf("実行されました\n");


}


でなく


printf("実行されました\n");


となっているだろう


だから


今回はたまたまaの値は0だが


どのような値をaがとることになっても


一回は必ず


printf("実行されました\n");


が実行されることになるんだ



int a = 0;


を実行することは


printf("実行されました\n");


が実行されることの条件ではない


つまり


printf("実行されました\n");


が実行されるための


       "フラグをたてる(定められた条件を満たす)"


ことにはならないってわけなのだあ(うっ 自分でいっててなんだが あたりまえかも・・・)


さらに


int a = 0;


printf("実行されました\n");


a=1;


if(a<3){


printf("実行されました\n");


}


a=2;


if(a<3){


printf("実行されました\n");


}




int a = 0;


printf("実行されました\n");



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


printf("実行されました\n");


}


と書き換えられる



do while文はfor文を用いてかきかえられるってわけだ


まてよ



while文

👇

int a = 0;//🌞初期化式


while (a < 3) {


printf("実行されました\n");


a++;

}




if文を用いて


次のようにあらわされたりしてたが😊

👇


a=0;


if(a<3){


printf("実行されました\n");


}


a=1;


if(a<3){


printf("実行されました\n");


}


a=2;


if(a<3){


printf("実行されました\n");


}


👆


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


printf("実行されました\n");


}


であらわすこともできる


つまり


while文をfor文で書き換える


for文もwhile文もdo while 文もif文の集まりで表現することができるが


while文やdo while 文をfor文でかきかえることもできるってわけだ



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



マックスさん


エクセレント!



マックス「にゃははあ~ん


そうだろう😊


そうだろう(*´▽`*)/










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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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