Swiftではswitch文のbreakは基本的に不要

C言語やその系統の言語では、多くの場合、switch文を使う場合、各caseの最後には意図的にフォールスルーを行う場合を除けばbreak文を付与しなければならなかった。というのは、C言語においては、各caseはラベルとしての意味合いしかなかったからである(C言語におけるswitch文の落とし穴も参照)。さて、Swiftではどうなっているだろうか。ここではそれについて説明を行いたい。

まず、C言語では多くの場合、以下のようなコードにしていただろう。

一方、これをSwiftにした場合は、以下のような記述になる。

これは、C言語と同様の記述である。ちなみに、Swiftでは、以下の記述の仕方もできる。

上記のコードでも、breakがある場合と同様の処理になる。というのは、Swiftではラベルとしての役割にとどまらず、制御ブロックとしても機能しているからである。

なお、Swiftでもbreakが必要になるケースがあるが、これは、何も処理が書かれていない場合に限られる。

なお、明示的にフォールスルーしたいときは、fallthroughを明記する。

Swiftでは、C言語とは正反対の制御になるため、混乱を招く危険性がある。それを防ぐために明示的にbreak文を加えることは悪いわけではないが、ちゃんと切り替えられるようにした方が良いだろう。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しております。仕事依頼や相談などについては、Contact Formよりお願いいたします。
スポンサーリンク

フォローする

トラックバックURL