- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 break実行後の行先について)
C言語でbreak実行後の行先について
このQ&Aのポイント
- C言語でwhile(1)繰り返しブロック中にbreakが実行されると、どの位置まで進むのか疑問です。具体的には、行番6のfor文の中にスイッチ入力すると、結果を表示して停止しますが、再度動作させるにはマイコンのリセットが必要です。breakの後は行番2と行番3の間に行くのでしょうか?アドバイスを頂けると助かります。
- C言語のプログラムで、while(1)の繰り返しブロック中にbreakが実行されると、どの位置まで進むのかについて教えてください。具体例として、行番6のfor文の中にスイッチ入力すると、結果を表示して停止しますが、再度動作させるにはマイコンのリセットが必要です。breakの後は行番2と行番3の間に進むのでしょうか?お知恵を拝借願いたいです。
- C言語のwhile(1)の繰り返しブロック中にbreakが実行されると、どの行に進むのかについて教えてください。具体的には、行番6のfor文の中にスイッチ入力すると、結果を表示して停止しますが、再度動作させるにはマイコンのリセットが必要です。breakの後には、行番2と行番3の間に進むのでしょうか?ご教示いただけると幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
break;文は 繰り返しを抜けるのと、switch ~ case文で抜けるときに使います。 なので繰り返し構文というとwhile文だけでなくfor文も対象ですよね? main while(1) { for (;;) { break; } // (1) } } とあった場合breakのあとはfor文の閉じかっこの後(1)になります。 switch文の中にあったとしたらswitch 文の閉じかっこの後になります(2) main while(1) { for (;;) { switch ( a ) { case 1: break; } // (2) } } }
その他の回答 (2)
- t0z2
- ベストアンサー率36% (139/377)
回答No.2
この場合、breakの実行によってfor文を抜け出し、8と9の間に行くと思いますが。
質問者
お礼
ご回答頂きまして有難うございました。 解説どおりbreak後の流れが掴むことが 出来ました。なるほど不思議に、上手く 出来ているものと感心しきりです。
- TooManyBugs
- ベストアンサー率27% (1472/5321)
回答No.1
breakではforループを抜けるのみですからwhile(1)の永久ループからは抜けません。 コンパイラにバグが無いとすると恐らく他の部分に原因があるものと推測します。 完全なソースコード、結線図などが無いとそれ以上は何とも言えません。
質問者
お礼
ご回答返礼遅くなりまして申し訳ございません。 休日しか時間が取れなくて、確認と理解まで長くなりました。 そうですね、ターゲットが自作ですので、回路的問題も並行して 充分考察しなければなりませんでしたが、 お蔭様で回答者様からの、ご教示にて希望どおりの、 動作が出来たのでこれで一歩前進と、感謝致しております。
お礼
回答お礼遅くなりまして、申し訳ございません。 LEDを用いた実験回路にて、解説頂いたところにを 踏まえてbreak文をいろいろ試してみました。 ソフト面については、目に見えない 部分なので、思い通りの動きをしてくれた時は 感動しました。有難うごさいました。