switch文もC言語なんかと似ている。次のような感じだ。

let hoge = 10
var msg:String

switch hoge {
case 1:
    msg = "hogeは1"
case 10:
    msg = "hogeは10"
default:
    msg = "hogeは1,10以外"
}

println(msg)    // "hogeは10"と表示

if文とかと同様に、switch文の後の()はいらない。case文の最後のbreakは必要ない。(書いてもいい)あと、文字列変数でも条件わけできる。
C言語でbreakを書かなかった場合と同じ動作をするには、fallthroughを書く。
こんな感じだ。

let hoge = 10
var msg:String

switch hoge {
case 1:
    println("hogeは1")
    break   // ←書いてもいい
case 10:
    println("hogeは10")
    fallthrough
default:
    println("hogeは1,10以外")
}

// これを実行すると、
// hogeは10
// hogeは1,10以外
// と表示される。

caseで複数条件を指定するには、","で区切って指定する。

let hoge = 10
var msg:String

switch hoge {
case 1, 10:
    msg = "hogeは1または10"
case 2:
    msg = "hogeは2"
default:
    msg = "hogeは1,2,10以外"
}

println(msg)    // "hogeは1または10"と表示

whereを使ってパターンマッチも可能。

let hoge = 6
var msg:String

switch hoge {
case let x where x < 5:
    msg = "hogeは5未満"
case let x where x >= 5 && x < 10:
    msg = "hogeは5以上,10未満"
default:
    msg = "hogeは10以上"
}

println(msg)    // "hogeは5以上,10未満"と表示

いったんletで指定した変数に代入して、その変数で比較するような感じだ。

あと、Swiftのswitch文は、条件の網羅性のチェックが行われる。例であげたソースのdefault部分をコメントアウトするとエラーになる。