獻(xiàn)給一起學(xué)習(xí)的小伙伴
- 做OC開發(fā)也快2年了,最近公司要求Swift來開發(fā),組里的小伙伴就叫我整理個(gè)資料給他們,所以就抽空寫了這個(gè),每天寫一點(diǎn),把OC 和** Swift **的不同點(diǎn)都標(biāo)注出來,方便大家對比,我也小小的回顧一下,希望看的小伙伴們持續(xù)關(guān)注.
- 今天大概說下判斷語句、循環(huán)語句,開搞:
1-判斷語句
1.1 if 分支語句
- 在Swift的判斷句中必須有明確的真假不再有非0即真
必須有明確的Bool值
- Bool有兩個(gè)取值:false/true
oc版
int a = 10;
int b = 8;
if (a > b) {
NSLog(@"a大于b");
}else{
NSLog(@"a小于b");
}
swift版
let score = 87
if score < 60 {
print("不及格")
} else if score <= 70 {
print("及格")
} else if score <= 80 {
print("良好")
} else if score <= 90 {
print("優(yōu)秀")
} else {
print("完美")
}
** 1.2 三目運(yùn)算符**
- swift中的三目運(yùn)算符和oc寫法差不多 大家看一眼應(yīng)該就明白了.
oc版
int a = 10;
int b = 8;
int c = a > b ? a : b
swift版
var a = 10
var b = 50
var result = a > b ? a : b
print(result)
**1.3 switch語句 **
- Switch作為選擇結(jié)構(gòu)中必不可少的語句也被加入到了Swift中
- 只要有過編程經(jīng)驗(yàn)的人對Switch語句都不會感到陌生
- 但蘋果對Switch進(jìn)行了大大的增強(qiáng)叛薯,使其擁有其他語言中沒有的特性
- 不同之處:
1. switch后可以不跟()
2. case后可以不跟break(默認(rèn)會有break)
3. 不加break 不會有case穿透效果
4. 如果想要有穿透效果加個(gè)關(guān)鍵字 fallthrough 就會造成穿透了
5. switch支持多種數(shù)據(jù)類型 :浮點(diǎn)型 字符串子類的都可以
oc 版
int num = 10086;
switch (num) {
case 10010:
NSLog(@"我是聯(lián)通,謝謝");
break;
case 10086:
NSLog(@"我是移動,呵呵");
default:
NSLog(@"那我就是電信嘍");
break;
}
swift版
let sex = 0
switch sex {
case 0 :
print("男")
case 1 :
print("女")
default :
print("其他")
}
還有其他的寫法:
let sex = 0
switch sex {
case 0, 1:
print("正常人")
default:
print("其他")
}
穿透的寫法
switch sex {
case 0:
fallthrough
case 1:
print("正常人")
default:
print("其他")
}
浮點(diǎn)型的switch判斷
let f = 3.14
switch f {
case 3.14:
print("π")
default:
print("not π")
}
字符串的就不舉例了 差不多的
- 補(bǔ)充 : switch支持區(qū)間判斷
- swift中的區(qū)間常見有兩種
1.半開半閉區(qū)間:0..<10 表示:0~9,不包括10
2.閉區(qū)間:0...10 表示:0~10
- swift中的區(qū)間常見有兩種
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("幾個(gè)")
case 80..<90:
print("良好")
case 90..<100:
print("優(yōu)秀")
default:
print("滿分")
}
2- 循環(huán)語句
- for循環(huán)語句
提示:swift中for后面不需要加小括號
oc版
for (int i = 0; i < num ; ++i) {
<#statements#>
}
for (<#type *object#> in <#collection#>) {
<#statements#>
}
swift版
// 傳統(tǒng)寫法
for var i = 0; i < 10; i++ {
print(i)
}
//區(qū)間類型
for i in 0..<10 {
print(i)
}
for i in 0...10 {
print(i)
} return 0;
//不需要下標(biāo)參數(shù)的時(shí)候 可以用下劃線代替 在swift的其他方法中也通用
for _ in 0..<10 {
print("hello")
}
- while/do while循環(huán)語句
- while的判斷句必須有正確的真假,沒有非0即真
- while后面的()可以省略
oc版
int a = 10;
while (a >0) {
a --;
}
NSLog(@"a");
swift版
var a = 0
while a < 10 {
a++
}
注意這里沒有do這個(gè)關(guān)鍵字了 改成 repeat
let b = 0
repeat {
print(b)
b++
} while b < 20
以前的文章
Swift學(xué)習(xí)歷程01 - swift基礎(chǔ) http://www.reibang.com/p/c91c64c34e19
今天就先寫這些了,還有其他事,還有一些小伙伴私信我,問我的微博 微信 ,我以后就統(tǒng)一在結(jié)尾都貼上吧!
博客:http://www.cnblogs.com/hongdongheng
微博:http://weibo.com/u/3041860075
微信:nan46825
希望小伙伴多多留言和點(diǎn)贊,和我交流.
寫于2016年4月27日晚