- 今天大概说下判断语句、循环语句,开搞:
1-判断语句
1.1 if 分支语句
- 在Swift的判断句中必须有明确的真假不再有非0即真
必须有明确的Bool值
- Bool有两个取值: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("优秀")
} else {
print("完美")
}
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("优秀")
} else {
print("完美")
}
** 1.2 三目运算符**
- swift中的三目运算符和oc写法差不多 大家看一眼应该就明白了.
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)
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作为选择结构中必不可少的语句也被加入到了Swift中
- 只要有过编程经验的人对Switch语句都不会感到陌生
- 但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性
- 不同之处:
1. switch后可以不跟()
2. case后可以不跟break(默认会有break)
3. 不加break 不会有case穿透效果
4. 如果想要有穿透效果加个关键字 fallthrough 就会造成穿透了
5. switch支持多种数据类型 :浮点型 字符串子类的都可以
oc 版
int num = 10086;
switch (num) {
case 10010:
NSLog(@"我是联通,谢谢");
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("其他")
}
浮点型的switch判断
let f = 3.14
switch f {
case 3.14:
print("π")
default:
print("not π")
}
字符串的就不举例了 差不多的
oc 版
int num = 10086;
switch (num) {
case 10010:
NSLog(@"我是联通,谢谢");
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("其他")
}
浮点型的switch判断
let f = 3.14
switch f {
case 3.14:
print("π")
default:
print("not π")
}
字符串的就不举例了 差不多的
- 补充 : switch支持区间判断
- swift中的区间常见有两种
1.半开半闭区间:0..<10 表示:0~9,不包括10
2.闭区间:0...10 表示:0~10
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("几个")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("几个")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}
2- 循环语句
- for循环语句
提示:swift中for后面不需要加小括号
oc版
for (int i = 0; i < num ; ++i) {
<#statements#>
}
for (<#type *object#> in <#collection#>) {
<#statements#>
}
swift版
// 传统写法
for var i = 0; i < 10; i++ {
print(i)
}
//区间类型
for i in 0..<10 {
print(i)
}
for i in 0...10 {
print(i)
} return 0;
//不需要下标参数的时候 可以用下划线代替 在swift的其他方法中也通用
for _ in 0..<10 {
print("hello")
}
oc版
for (int i = 0; i < num ; ++i) {
<#statements#>
}
for (<#type *object#> in <#collection#>) {
<#statements#>
}
swift版
// 传统写法
for var i = 0; i < 10; i++ {
print(i)
}
//区间类型
for i in 0..<10 {
print(i)
}
for i in 0...10 {
print(i)
} return 0;
//不需要下标参数的时候 可以用下划线代替 在swift的其他方法中也通用
for _ in 0..<10 {
print("hello")
}
- while/do while循环语句
- while的判断句必须有正确的真假,没有非0即真
- while后面的()可以省略
oc版
int a = 10;
while (a >0) {
a --;
}
NSLog(@"a");
swift版
var a = 0
while a < 10 {
a++
}
注意这里没有do这个关键字了 改成 repeat
let b = 0
repeat {
print(b)
b++
} while b < 20
oc版
int a = 10;
while (a >0) {
a --;
}
NSLog(@"a");
swift版
var a = 0
while a < 10 {
a++
}
注意这里没有do这个关键字了 改成 repeat
let b = 0
repeat {
print(b)
b++
} while b < 20