・Swiftに関する他の記事はこちら
Swift入門 勉強記録 その1 Swiftとは、Playground起動
if文
if文を使った条件分岐の基本は下記3通り。
・if 〜
・if 〜 else 〜
・if 〜 else if 〜 else 〜
試す。
まずはif 〜。
ループ変数が5になったら、お知らせするぞ。
```
import UIKit
let myName = "Yamada Taro"
for i in 1...5{
println("\(i) - \(myName)")
if i == 5{
println("iが\(i)になったんだー")
}
}
```
次! if 〜 else 〜。
ループ変数が5のときは小文字、それ以外は大文字で表示するぞ。
import UIKit
let myName = "Yamada Taro"
for i in 1...5{
if i == 5{
println("\(i) - \(myName)")
}else{
println("\(i) - \(myName.uppercaseString)")
}
}
次! if 〜 else if 〜 else 〜。
ループ変数が5のときは小文字、
2のときは「2だね!」、それ以外は大文字で表示するぞ。
import UIKit
let myName = "Yamada Taro"
for i in 1...5{
if i == 5{
println("\(i) - \(myName)")
}else if(i == 2){
println("2だね!")
}else{
println("\(i) - \(myName.uppercaseString)")
}
}
なお、Swift勉強記録 その4 数値、真偽値の「Objective-Cとの違い」で書いたが、条件の部分はtrue/falseでなければならない。
if文で{}なしはエラー
Objective-Cでは{}なしでif文を書くことができた。
Swiftで書くなら↓のようになる。
import UIKit
let myName = "Yamada Taro"
for i in 1...5{
if i == 5
println("\(i) - \(myName)")
else
println("\(i) - \(myName.uppercaseString)")
}
Swiftではエラーになるので、↓のとおりだ。
バグになりそうなトリッキーな書き方をなくしたというところだろう。
if文のなかにさらにif文があるときなど、
{}がないと読みにくかったので、個人的にはうれしい。
switch文
switchで指定するのと同じ値がcaseの後ろにあれば、
その中の処理を実行します。
↓のような書き方だ。
switch ** {
case AA:
break
case BB:
break
default:
break
}
試す。
import UIKit
let country = "Japan"
switch country{
case "France":
println("Yes,France")
case "Brasil":
println("Yes,Brasil")
case "Japan":
println("Yes,Japan")
default:
println("No")
}
countryの値を変えて試すのもいいでしょう。
switch文のObjective-Cとの違い
この内容をObjective-Cで書くなら、このように書くのだろう。
typedef NS_ENUM (int, kCountry) {
kFrance = 0,
kBrasil = 1,
kJapan = 2,
kOther = 9
};
int country = 2;
switch (country) {
case kFrance:
NSLog(@"Yes,France");
break;
case kBrasil:
NSLog(@"Yes,Brasil");
break;
case kJapan:
NSLog(@"Yes,Japan");
break;
default:
NSLog(@"No");
break;
}
Swiftのときと比較して気づくのは
1.switchの後にある比較対象に()は必要ない
2.switchの後にある比較対象がSwitchでは数値でなくてもよい。オブジェクトでもいいのだ。
3.Swiftではcaseの中の処理の最後にbreakをいれなくても、処理を終了する。Objective-Cではbreakを入れなければ、次にあるcaseの仲の処理が実行されてしまうので、Swiftでは注意が必要だ。
さらに、Swiftではこんな書き方もできる。
caseのうしろに2つの値を入れられる。
import UIKit
let country = "Germany"
switch country{
case "France", "Germany":
println("Yes,EURO")
case "Brasil":
println("Yes,Brasil")
case "Japan":
println("Yes,Japan")
default:
println("No")
}
まだまだ!!!こんなふうにもいける!
範囲を指定できるんだ。
import UIKit
let score = 10
switch score{
case 0..<60:
println("がんばった")
case 61..<80:
println("やるね")
case 81..<100:
println("ひゃっはー")
default:
println("お前、何点だ")
}
switch文はObjective-Cと比べるとかなり柔軟になり、使う機会が増えそう。
今回はここまで。
・Swiftに関する他の記事はこちら
Swift入門 勉強記録 その1 Swiftとは、Playground起動