天国にいけるC言語入門 ヘキサ構造体 ver5.2130
for文による繰り返しの中 if()continue文でとばされた回の命令文の代わりとなる別の命令文を実行させてみよう 猫の喜びの声が聞こえる・・・
for文による繰り返しの中 if()continue文でとばされた回の命令文の代わりとなる別の命令文を実行させてみよう 猫の喜びの声が聞こえる・・・
ソーラー 「かつお、かつお~~
純粋な
常に最新の技術をとりいれないと・・・・・
今日は
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回だけに指定してきたんだね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます