Swift による iOS 開発入門

ホーム > Swift の基本 > プログラムフロー制御

プログラムフロー制御

スポンサーリンク

特定の条件で処理を分岐するなどする、基本的なステートメントをみていきましょう。

C 言語などのプログラミング言語を知っていれば、直感的にわかるものばかりです。

ざっとポイントを眺めていきましょう。

if 文

条件分岐の if 文です。

C 言語などと違うのは、if のあとの括弧 ( や ) が必須ではないというところでしょうか。

if ( a == 1 ) { 
  // Do something
}

と次は同じです。

if a == 1 {
  // Do something
}

switch 文

Swift の switch 文は非常に柔軟で、安全に出来ています。主な特徴をみていきましょう。

  • Swift の switch 文は exhaustive です。これは評価されるいずれかの case に合致しなければならないことを意味します。全てを網羅できない場合は default を必要とします。
  • case 以下には必ず何か実行する文が必要です。何もしないことを意図する場合には break とします。
  • 基本フォールスルーしません。つまり、break を書かないからといって、case ブロックをまたいで上から順に実行することはありません。明示的にフォールスルーすることを意図する場合には、fallthrough と記述します。
  • まず、複数の値を case に書けます
  • タプルと where が使える。
var a = 1
var s: String = String()

switch a {
case 1, 2:
	s = "A"
case 3...10:
	s = "B"
default:
	break;
}

s // "A"

もしここで、次のように fallthrough としたら s は "B" になります。

switch a {
case 1, 2:
	s = "A"
	fallthrough

タプルと where が使えるという点については次の例をみてください。

var person = ("Ichiro", 30)
var s: String = String()

switch person {
case let (name, age) where age == 30:
	s = "A"
default:
	break;
}

s // "A"

この例のように case でタプルを評価することができます。この時の条件は where として記述します。

スポンサーリンク
ホーム > Swift の基本 > プログラムフロー制御