C言語今更再認識: switch文をcontinueで抜ける | 技術日誌

技術日誌

ここでは,電子工作,木工などの趣味での記録を書いています。
なお当初はKMK研究所のメインテーマであるSPSのノウハウを書いてきましたが,順次SPSノウハウのページに複製を作っていきます。

 switch文は,値の場合分けをする制御法です。それぞれの場合(case)の最後にbreak文を入れて,次の場合の処理に進まないようにしています。break文はforやwhileなどの繰り返し制御の中でも使われます。その繰り返し処理から強制的に抜けるのに使います。これに似た文にcontinue文があります。これは,繰り返し処理の,その回の処理をスキップして,次の回に移るものです。switch文は繰り返し処理ではないので,普通,continue文は使いません。しかし,繰り返し処理の中にswitch文があるとき,caseの中でcontinue文が使えることを確認しました。その場合,continue文はswitch文の外側の繰り返し処理に対して意味をなし,switch文を抜け,外側の繰り返しのその回をスキップして次の回へと進むのです。

 次の図は,試したプログラムです。iが1~4でループしています。その中にswitch文ががあります。aは2なので,常にcase (2)のところが実行されます。そこでは1 2 3と書き出されますが,i=2のときだけ,1 2を書き出した後にcontinue文が実行されます。

 

 

 下は,実行結果です。i=2のとき,1 2と書き出したところで,3を書き出さず,switch文の後の処理も飛ばして,forループのi=2の回の処理を終え,i=3の処理へとスキップしていることが分かります。

 20210731c計算結果.jpg

 

 今回,switch文の中でのcontinue文の使い方を再認識しました。