for文による繰り返しの中 if()continue文でとばされた回の命令文の代わりとなる別の命令文を実行させてみよう 猫の喜びの声が聞こえる・・・


ソーラー 「かつお、かつお~~


純粋なねこのneeds《ニーズ》にこたえるためには


常に最新の技術をとりいれないと・・・・・


今日は

if()continue;


という命令文を仕入れてきたんだよ。


てんC。


if()continue;



for{}文やwhile{}文、do while{}文のブロック{}内でのみ用いられる命令文で


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

if(a==5)continue;

printf("%d回目のご飯はかつおです\n",a);

}


のように記述するんだ


このように記述すると


for{}文によりa=5回目の繰り返しが実行される際


if(a==5)continue;


のあとに続く命令文

printf("%d回目のご飯はかつおです\n",a);

実行されないんだ。


つまり


a=5のとき


if(a==5)の()内の


論理式

a==5



1


つまり真の値をもつため


if(a==5)につづく


continue;


が実行されるというわけなのさ


continue;


っていうと


なにかがコンティニューされるのかと思ったらそういうことはなく


continue;


につづく命令文は


実行されないという仕組みになってるんだ。


(しかし break;が実行されるときのように


for{}文自体の実行が終了することなく


次の回の繰り返しは実行されるので


繰り返しが続いていくという点でcontinueという名前は適していると思われます)



だから


次のようなプログラムが実行されると→」


#include <stdio.h>

int main(void){

int a;

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

if(a==5)continue;

printf("%d回目のご飯はかつおです\n",a);

}

return 0;

}


プログラムの実行結果


1回目のご飯はかつおです

2回目のご飯はかつおです

3回目のご飯はかつおです

4回目のご飯はかつおです

6回目のご飯はかつおです

7回目のご飯はかつおです

8回目のご飯はかつおです

9回目のご飯はかつおです


ソーラー「→for{}文による


a=5回目の時の


printf("%d回目のご飯はかつおです\n",a);


の繰り返しは


実行されないんだ。


このif(a==5)continue;によってとばされることになった


5回目のご飯はかつおです


に かわって


4回目のご飯はかつおです

6回目のご飯はかつおです

の間に

あらたになにか文章を記述してみたいな。



どうしよっかな~



5回目のご飯、お料理は なにが いいかな


どんな お料理だったら 😻ちゃん、喜ぶかな 


どうかな


てんC」



てんC「かつおさんだけでなく、


まぐろさんも料理の素材に導入されてはいかがですか?


次のプログラムのように・・・


#include <stdio.h>

int main(void){

int a;


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

if(a==5)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)continue;

printf("%d回目のご飯はかつおです\n",a);

}

return 0;

}


プログラムの実行結果


1回目のご飯はかつおです

2回目のご飯はかつおです

3回目のご飯はかつおです

4回目のご飯はかつおです

5回目のご飯はまぐろです

6回目のご飯はかつおです

7回目のご飯はかつおです

8回目のご飯はかつおです

9回目のご飯はかつおです


ソーラー 「おぉっ  てんC~~~ 超ナイス!😊


さりげなく すごいね。


なんと 今まで


プログラムの実行結果


1回目のご飯はかつおです

2回目のご飯はかつおです

3回目のご飯はかつおです

4回目のご飯はかつおです

6回目のご飯はかつおです

7回目のご飯はかつおです

8回目のご飯はかつおです

9回目のご飯はかつおです



空欄だった5回目の場所に


新たに5回目のご飯はまぐろです が


表示されてる~」


てんCの手をとり喜ぶソーラー。


それほどまでにソーラーは


ねこ食事ミールに執着しているのだ。


ねこ食事ミールへのあくことのなき渇望。


さすがは お猫とお料理好き!なだけのことはある。


てんC 「そんなに喜んでいただけるとは・・・


光栄です。」


ソーラー 「これを応用すれば


プログラムの実行結果に


1回目の猫ご飯はまぐろ


5回目の猫ご飯は


しゃけ


それ以外の全ての回の猫ご飯は


かつお


というような


いろいろなネコのご飯の献立表を作製、表示できるんだよ


次のプログラムのように、ね(^^)/」


#include <stdio.h>

int main(void){

int a;


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

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);

}

return 0;

}


プログラムの実行結果


1回目のご飯はまぐろです

2回目のご飯はNouvel de かつおです

3回目のご飯はNouvel de かつおです

4回目のご飯はNouvel de かつおです

5回目のご飯はしゃけです

6回目のご飯はNouvel de かつおです

7回目のご飯はNouvel de かつおです

8回目のご飯はNouvel de かつおです

9回目のご飯はNouvel de かつおです


ソーラー「このプログラムでは


愛猫ちゃんのためにまぐろ、しゃけのお魚料理のほかに


私が丹精こめて調理いたしました


かつおのなかでも最高級の素材をもちいた


新創作料理


Nouvel de かつおをご用意いたしました。


レディ」


てんC 「Nouvel de かつお・・・猫ちゃんの憧れ・・・


なんと 1回目と5回目以外の猫ご飯はぜんぶ


Nouvel de かつおなんですね(^^)」


ソーラーの手を取り喜ぶてんC。


ソーラーとお猫のお役に立てたことに


システムとして充足した喜びを感じているのだ。


ソーラー 「そう、


           今が旬の🐟かつお🐟、


🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟


🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟  🐟



これを用いた


新創作料理


Nouvel de かつおなんです。


おニャンこのお料理に


旬の時期を考えて 


🐟🐟かつお🐟ちゃん を選択してみたんだよ(´▽`*)


おニャンこ ニャンニャンだね!


このプログラムは


a=1のときは 1回目のご飯はまぐろです を

a=5のときは 5回目のご飯はしゃけです を


それ以外の回は



2回目のご飯はNouvel de かつおです

3回目のご飯はNouvel de かつおです

4回目のご飯はNouvel de かつおです

6回目のご飯はNouvel de かつおです

7回目のご飯はNouvel de かつおです

8回目のご飯はNouvel de かつおです

9回目のご飯はNouvel de かつおです


このように


ご飯はNouvel de かつおです を


printf出力表示するんだ。 やったね。


もう 闇雲に猫まっしぐらだね。


このように


1回目と5回目に別の文章をプログラムの実行結果に表示するためには


まず


if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);



     if(a==1||a==5)continue;の前に持ってきました


そして


   if(a==1||a==5)continue;


のあとに


printf("%d回目のご飯はNouvel de かつおです\n",a);


を記述することにより


if(a==1||a==5)continue;をつかって


a=1回目とa=5回目に実行されるはずの命令文


printf("%d回目のご飯はNouvel de かつおです\n",a);


が実行されないようにしました


for{}文は以下のように記述されていたね

👇


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

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);

}


あ、そうだ


面白いことに気づいちゃった


それとは異なり


if(a==1||a==5)continue;


printf("%d回目のご飯はNouvel de かつおです\n",a);


のあとに

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);


を記述すると


プログラムの実行結果がことなってきます。


👇


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

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

}


実際にこのfor文を用いたプログラムを構成して実行してみると

👇

#include <stdio.h>

int main(void) {

int a;


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

if (a == 1 || a == 5)continue;

printf("%d回目のご飯はNouvel de かつおです\n", a);

if (a == 1)

printf("%d回目のご飯はまぐろです\n", a);

if (a == 5)

printf("%d回目のご飯はしゃけです\n", a);


}

return 0;

}


プログラムの実行結果


2回目のご飯はNouvel de かつおです

3回目のご飯はNouvel de かつおです

4回目のご飯はNouvel de かつおです

6回目のご飯はNouvel de かつおです

7回目のご飯はNouvel de かつおです

8回目のご飯はNouvel de かつおです

9回目のご飯はNouvel de かつおです


ソーラー「なぜなら



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

if (a == 1 || a == 5)continue;

printf("%d回目のご飯はNouvel de かつおです\n", a);

if (a == 1)

printf("%d回目のご飯はまぐろです\n", a);

if (a == 5)

printf("%d回目のご飯はしゃけです\n", a);


}



a=1またはa=5のとき


if (a == 1 || a == 5)continue;


が実行されてしまいます。


すると


if (a == 1 || a == 5)continue;


の後に続く命令文


printf("%d回目のご飯はNouvel de かつおです\n", a);

if (a == 1)

printf("%d回目のご飯はまぐろです\n", a);

if (a == 5)

printf("%d回目のご飯はしゃけです\n", a);


もすべて実行されないことになってしまいます。



ですので


a=1またはa=5回目の時の


printf("%d回目のご飯はNouvel de かつおです\n", a);

if (a == 1)

printf("%d回目のご飯はまぐろです\n", a);

if (a == 5)

printf("%d回目のご飯はしゃけです\n", a);


が実行されないため



プログラムの実行結果は


1回目のご飯はNouvel de かつおです

1回目のご飯はまぐろです

5回目のご飯はNouvel de かつおです

5回目のご飯はしゃけです

が表示されない


2回目のご飯はNouvel de かつおです

3回目のご飯はNouvel de かつおです

4回目のご飯はNouvel de かつおです

6回目のご飯はNouvel de かつおです

7回目のご飯はNouvel de かつおです

8回目のご飯はNouvel de かつおです

9回目のご飯はNouvel de かつおです


が表示されることになります


1回目のご飯と5回目のご飯がなくなっちゃう



ですので(^_-)-☆


#include <stdio.h>

int main(void){

int a;


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

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);

}

return 0;

}


👆

やっぱり


このように

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);


の前に記述すればOK 😊


きれいに


プログラムの実行結果


1回目のご飯はまぐろです

2回目のご飯はNouvel de かつおです

3回目のご飯はNouvel de かつおです

4回目のご飯はNouvel de かつおです

5回目のご飯はしゃけです

6回目のご飯はNouvel de かつおです

7回目のご飯はNouvel de かつおです

8回目のご飯はNouvel de かつおです

9回目のご飯はNouvel de かつおです


が表示されるんだね


このとき


        「「a=1回目またはa=5回目のとき」」の


printf("%d回目のご飯はNouvel de かつおです\n",a);


の命令文をとばして実行しないよう


if(a==1||a==5)continue;



if()の()の中の条件式(論理式)が


          「「  a==1||a==5  」」 


と記述されているところに注目だね。


どうかな 簡単かな?


if(a==1||a==5)は


論理式


a==1||a==5



a=1または5のとき


真の値1をもつことによって


if(a==1||a==5)につづく命令文


continue;


を実行するために記述されているんだよね。


ここで


このプログラムでif(a==1||a==5)continue;の


if(a==1||a==5)だけをとりのぞき


continue;とだけかかれた


次のプログラムを


#include <stdio.h>

int main(void){

int a;


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

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

continue; / *👈ここです💖😝*/

printf("%d回目のご飯はNouvel de かつおです\n",a);

}

return 0;

}


実行してみると


プログラムの実行結果は


1回目のご飯はまぐろです

5回目のご飯はしゃけです


となります。


つまり


命令文continue;


の基本的な仕組みとは


for{}文の中でのみ用いられ


continue;


のあとにつづく


命令文を実行しないことにあるのです。


ですから


今のプログラムでは


for{}文の{}の中で


if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);


continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);


と記述されているので


continue;

の前に記述されている


if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);


は実行されても


for{}文による 1回目から9回目のブロック{}内の命令文の繰り返しにおいて


printf("%d回目のご飯はNouvel de かつおです\n",a);

の繰り返しは


printf("%d回目のご飯はNouvel de かつおです\n",a);

continue;


のあとにつづくために


実行されることはありません。


わたしの新創作料理Nouvel de かつおがぁぁあ パッションがぁぁ


1回も表示されていないとはぁ・・・


このように


if()のない


continue;だけが記述してあると


continue;の後につづく命令文


printf("%d回目のご飯はNouvel de かつおです\n",a);



for文によって 繰り返されるすべての回


実行されないのがわかったね。


そうならないために


if(a==1||a==5)continue;



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

if(a==1)

printf("%d回目のご飯はまぐろです\n",a);

if(a==5)

printf("%d回目のご飯はしゃけです\n",a);

if(a==1||a==5)continue;

printf("%d回目のご飯はNouvel de かつおです\n",a);

}



のように記述して


continue;


が実行される回を


1回目と5回目だけに設定し


continue;


の後につづく命令文


printf("%d回目のご飯はNouvel de かつおです\n",a);


実行されない回を1回と5回だけに指定してきたんだね。」


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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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