LoginSignup
56
53

More than 5 years have passed since last update.

[Swift]switch文のcaseやdefault節で何も処理しない場合はbreakが必要

Last updated at Posted at 2014-08-17

概要

  • Swiftのswitch文では、各case節やdefault節に何か1行以上処理が書いてないと文法エラーになります。
  • コメントは不可です。Objective-Cではdefault節に// do nothing等のコメントだけ書くことも多かったと思いますが、swiftでは文法エラーになります。
  • 処理はbreakprintlnreturnなどなんでもOK。とくに必要な処理がない場合は、breakを記述すると処理を変えず文法エラーを回避することができます。
  • Swiftではswitch文のdefault節が必須になりました。
  • →取りうるすべての値をカバーしていれば、default節は必須ではありません。
  • mono0926さんからいただいたご指摘をもとに、誤りを修正しました。どうもありがとうございます! 2014/08/17

解決法

  • 処理がない場合は、明示的にbreakを書けばOK
sample.swift
var ret = 0
switch section {
  case 0:
    ret = array1.count
  case 1:
    ret = array2.count
  default:
    break // do nothing
}

文法エラーの例

問題点

  • default節に処理がない

エラーメッセージ

  • 'default' label in a 'switch' should have at least one executable statement
error2.swift
var ret = 0
switch section {
  case 0:
    ret = array1.count
  case 1:
    ret = array2.count
  default:
    // do nothing
}

まとめ

  • 何も処理がない場合はbreakを書けばOK
  • 気になる点がありましたら気軽にコメントください!
56
53
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
53