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の処理へとスキップしていることが分かります。
今回,switch文の中でのcontinue文の使い方を再認識しました。