天国にいけるC言語入門 ヘキサ構造体 ver3.2128
if()continue;文はfor文の中でもちいられ if()の()内の条件式が1の値(真の値)を持つときはその繰り返しの回のcontinue;以下の命令文は実行されません
if()continue;文はfor文の中でもちいられ if()の()内の条件式が1の値(真の値)を持つときはその繰り返しの回のcontinue;以下の命令文は実行されません
if()continue;文はfor{}文のブロック{}内でもちいられ if()の()内の条件式が1の値(真の値)を持つときはその繰り返しの回のcontinue;以下の命令文は実行されません
#include <stdio.h>
int main(void){
int a;
for(a=1;a<8;a++){
if(a==5)continue;
printf("%d回目のご飯はマスです\n",a);
}
printf("・・・・・・・・・(^^)\n");
printf("にゃ、にゃお~~~ん(^^)\n");
printf("お食事に・・・マス大好物にゃん\n");
printf("いりこもありますよ\n");
return 0;
}
プログラムの実行結果
1回目のご飯はマスです
2回目のご飯はマスです
3回目のご飯はマスです
4回目のご飯はマスです
6回目のご飯はマスです
7回目のご飯はマスです
・・・・・・・・・(^^)
にゃ、にゃお~~~ん(^^)
お食事に・・・マス大好物にゃん
いりこもありますよ
続行するには何かキーを押してください_
ぶーにゃん 「ぺろりんっマスがいっぱいとれるにゃんね。」
てんC 「はいっ ご近所の増田さんがいつも、
ぶーにゃんさんのためにもってきてくれます」
ぶーにゃん 「増田さん、ありがとにゃん。」
てんC 「このプログラムの実行結果をみると
5回目のご飯はマスです
がぬけています。
if() continue;文は命令文を繰り返すfor{}文のブロック{}内でもちいられ
👆
if() の()の中の論理式が真の値1をもつようになる回の
if() continue;
とばして
次の回以降の命令文の繰り返しを実行します。
このプログラムの場合では
5回目の繰り返しのとき
if()の()のなかの論理式a==5が真の値1をもつので
printf("%d回目のご飯はマスです\n",a);
が実行されず
5回目のご飯はマスです
は表示されません。
その次の
6回目のご飯はマスです
以降は表示されています
if() の()の中の論理式が真の値1をもつようになる回の
命令文は実行しないのであれば
次のプログラムのように
#include <stdio.h>
int main(void){
int a;
for(a=1;a<8;a++){
if(1)continue;
printf("%d回目のご飯はマスです\n",a);
}
return 0;
}
最初からずっとif(1)continue;と
if() の()の中の論理式が🌞真の値1🌞をもっていたらどのように
プログラムは実行されるのでしょうか?
このプログラムの場合
a=1回目の繰り返しのとき
if(1)continue;
printf("%d回目のご飯はマスです\n",a);
となり
if(1)continue;の働きにより
printf("%d回目のご飯はマスです\n",a);は実行されず
コマンドプロンプト画面に
1回目のご飯はマスです
は表示されません。
同様に
a=2回目から
a=7回目の
printf("%d回目のご飯はマスです\n",a);も実行されず
コマンドプロンプト画面に
何も表示されません。
ですので プログラムの実行結果は
続行するには何かキーを押してください_
以外は
何も表示されません。
ぶーにゃん「マ、マッス~~~」
では,では😊
次のプログラムのように
#include <stdio.h>
int main(void){
int a;
for(a=1;;a++){
if(1)continue;
printf("%d回目のご飯はマスです\n",a);
}
return 0;
}
の
for(a=1;a<8;a++)の
条件式a<8を取り除いて
for(a=1;;a++)とし
無限に
if(1)continue;
printf("%d回目のご飯はマスです\n",a);
を繰り返すプログラムを実行したら
どのような結果が表示されるでしょうか?
それでは・・・・
プログラムの実行っ」
てんC
「実行結果は・・・
_(アンダーバー)以外は何も表示されません
続行するには何かキーを押してください_
も表示されません。
これは
for{}文のブロック{}内の命令文
a=1回目の繰り返しのとき
if(1)continue;
printf("%d回目のご飯はマスです\n",a);
が実行されるのですが
if(1)continue;の働きにより
printf("%d回目のご飯はマスです\n",a);は実行されず
a=2回目の命令文の実行にうつります。
a=2回目以降も
printf("%d回目のご飯はマスです\n",a);は実行されず
次回の命令文の実行にうつります。
そう、つまり
if(1)continue;文により
ずっと その回の命令文の実行を飛ばし
次回の命令文を実行しようとするだけで
コマンドプロンプト画面には何も表示されません。
この繰り返しが無限に実行され続けるので
続行するには何かキーを押してください
を表示する段階までたどりつけず
アンダーバーだけが表示されているのです」
🍊🍊🍊
実はこの時コンピュータはプログラムを終了することができず
プログラムを実行し続けています
アンダーバーが表示されているので
プログラムが終了したと思ってしまいますね。
プログラムが終了したと思い
新たにもう1つ別のプログラムを実行すると
(Visual Studioの場合)
エラー LNK1168 ファイル c:\users\solarplexuss\source\repos\Project11\Debug\Project11.exe を開いて書き込むことができません。
のように表示されます。
Visual Studioでは1度に1つのプログラムしか実行できないため
2つのプログラムを実行しようとすると
このようなビルドエラー表示がでてきます。
ですので
別のプログラムを実行するには
いったんアンダーバーが表示されているコマンドプロンプト画面を
消して
今実行しているログラムの実行を終了させる必要があります。
🍊🍊🍊
ぶーにゃん
「マスご飯ちゃんはでてこないのかにゃ」
てんC「でてきませんね。(^^)
また元の最初のプログラムに
👇
#include <stdio.h>
int main(void){
int a;
for(a=1;a<8;a++){
if(a==5)continue;
printf("%d回目のご飯はマスです\n",a);
}
printf("・・・・・・・・・(^^)\n");
printf("にゃ、にゃお~~~ん(^^)\n");
printf("お食事に・・・マス大好物にゃん\n");
printf("いりこもありますよ\n");
return 0;
}
かえってみましょう。
このとき
if(a==5) continue;文の代わりにif(a==5) break;文を
代入すると
#include <stdio.h>
int main(void){
int a;
for(a=1;a<8;a++){
if(a==5) break;
printf("%d回目のご飯はマスです\n",a);
}
printf("・・・・・・・・・(^^)\n");
printf("にゃ、にゃお~~~ん(^^)\n");
printf("お食事に・・・マス大好物にゃん\n");
printf("いりこもありますよ\n");
return 0;
}
プログラムの実行結果は
1回目のご飯はマスです
2回目のご飯はマスです
3回目のご飯はマスです
4回目のご飯はマスです
・・・・・・・・・(^^)
にゃ、にゃお~~~ん(^^)
お食事に・・・マス大好物にゃん
いりこもありますよ
となります
a=5回目のとき
if(a==5) break;
の
break;
が
実行されることになります
すると
for{}文のブロック{}内の命令文の繰り返し実行は
終了することになります
a=5回目以降のfor{}文のブロック{}内の命令文の繰り返しは実行されず
a=4回目までの命令文の実行で
for文をぬけて
次の命令文
printf("・・・・・・・・・(^^)\n");
printf("にゃ、にゃお~~~ん(^^)\n");
printf("お食事に・・・マス大好物にゃん\n");
printf("いりこもありますよ\n");
が実行されていきます。
さあ
ぶーにゃんさん マスごはん 召し上がれ いりこもありますよ」
ぶーにゃん 「にゃ、にゃお~~~ん😝」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます