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言語入門より
マックスさん
エクセレント!
マックス「にゃははあ~ん
そうだろう😊
そうだろう(*´▽`*)/
」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます