###カウントを表示するプログラムを作成しています。
お世話になります。
カウント結果を表示するプログラムで、
0~9までカウントアップして表示するプログラムを作成しています。
continueを使って、カウントが5のときだけ表示しないようにしたいのですが、うまくいきません。
#08 for文でループ処理をしてみようを参考にしました。動画のようにfor文ではうまくいったのですが、while文だとうまくいきません。
m < 10としているのに10が表示されたり、
処理が終わらなかったりします。
n++やprintfの場所の位置によるものだと思うのですが、なぜこのようになるのでしょうか?
頭がこんがらがっています。
初歩的な質問で申し訳ありませんが、どなたか解説いただけましたら幸いです。
よろしくお願いいたします。
###表示させたいこと
m:0 m:1 m:2 m:3 m:4 m:6 m:7 m:8 m:9
###発生している問題・エラーメッセージ
エラーメッセージはありませんが、実行結果が異なり、困っています。
###該当のソースコード1
C
1 1 #include <stdio.h>↲ 2 2 ↲ 3 3 int main(void) {↲ 4 4 int m = 0;↲ 5 5 while (m < 10) {↲ 6 6 m++;↲ 7 7 if(m == 5) {↲ 8 8 continue;↲ 9 9 }↲ 10 10 printf("m:%d\n",m);↲ 11 11 }↲ 12 12 } 13/*実行結果 14m:1 15m:2 16m:3 17m:4 18m:6 19m:7 20m:8 21m:9 22m:10 23*/↲ 24
###該当のソースコード2
C
1 1 #include <stdio.h>↲ 2 2 ↲ 3 3 int main(void) {↲ 4 4 int m = 0;↲ 5 5 while (m < 10) {↲ 6 6 if(m == 5) {↲ 7 7 continue;↲ 8 8 }↲ 9 9 printf("m:%d\n",m);↲ 10 10 m++;↲ 11 11 }↲ 12 12 } 13/*実行結果 14m:0 15m:1 16m:2 17m:3 18m:4 19何も表示されないが、処理が終わらない 20*/
###該当のソースコード3
C
1 1 #include <stdio.h>↲ 2 2 ↲ 3 3 int main(void) {↲ 4 4 int m = 0;↲ 5 5 while (m < 10) {↲ 6 6 printf("m:%d\n",m);↲ 7 7 if(m == 5) {↲ 8 8 continue;↲ 9 9 }↲ 10 10 m++;↲ 11 11 }↲ 12 12 } 13/*実行結果 14m:5 15m:5 16m:5 17m:5 18m:5 19m:5 20m:5 21m:5 22m:5 23m:5 24m:5 25m:5 26とずっと表示されて終わらない 27/*
追記
for分のcontinueが効きません........を参考にしました。
continueの次の行がスキップされることがわかりました。
continueのあとの行にm++があったから処理が終わらなかったということでしょうか?
修正したのですが、
それでもうまくいきません........どうなるのでしょうか
###該当のソースコード4
C
1/*コード4*/ 2 1 #include <stdio.h> 3 2 int main(void) { 4 3 int m = 0; 5 4 while (m < 10) { 6 5 printf("m:%d\n",m); 7 6 m++; 8 7 if(m == 5) { 9 8 continue; 10 9 } 11 10 // この部分にあるコードがスキップされる 12 11 } 13 12 } 14/*実行結果 15m:0 16m:1 17m:2 18m:3 19m:4 20m:5 21m:6 22m:7 23m:8 24m:9 250~9までは表示される 26*/
###該当のソースコード5
C
1/*コード5*/ 2 1 #include <stdio.h> 3 2 int main(void) { 4 3 int m = 0; 5 4 while (m < 10) { 6 5 m++; 7 6 if(m == 5) { 8 7 continue; 9 8 } 10 9 // この部分にあるコードがスキップされる 11 10 printf("m:%d\n",m); 12 11 } 13 12 } 14/*実行結果 15m:1 16m:2 17m:3 18m:4 19m:6 20m:7 21m:8 22m:9 23m:10 245はスキップできているが、0から開始せず、9で終了している 25*/
追記
力技になってしまいましたが、
m=-1にしたらうまくいきました。
m=0のままで可能でしょうか?
お力をお貸しください。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。