iOS经典讲解之Swift分支结构与循环详解

时间:2021-07-27 15:43:23

作者:Loving_iOS

转载请标明出处:http://blog.csdn.net/loving_ios/article/details/49340073

本次开发环境为Xcode7.0.1 创建playground文件 进行的代码编写。

// ************************分支语句********************
// if 语句的条件 必须是BOOL值或者BOOL表达式
// BOOL值只能用true false
let isOrNo = true

if isOrNo {
print("true")
} else {
print("false")
}

var count:Int? = nil

count = 20
if count > 0 {
print(count)
// "\()" 用于拼接变量和字符串
print("count = \(count!)")

} else {
print(count)
}

// 声明变量的表达式也可作为条件
if let count1 = count {
print("ok")
} else {
print("error")
}
// 注意:分支语句原则上一定要保持完整 if else匹配完整


// ***************************循环*************
// while循环
var number = 0
while number < 3 {
number++
print("number = \(number)")
}

// do while

repeat {
number++
} while number < 6

// for

for var num = 0; num < 10; num++ {
print(num)
}

// for 循环条件可以省略 但是分号不能省略
//for ;;{
// print("循环")
//}

for ; number < 2; {
print(number)
number++
}

// for...in 循环 变量可以不声明 只作用于循环作用域中

var arr = [1, 3, 4, 5]

// 可以不指定类型
for num in arr {
print(num)
}

var dic = ["key":"value"]
for value in dic {
print(value)
// 枚举字典时返回一个存放键值的元组 可以通过元组取值规范取值
value.0
value.1

}

// 使用元组枚举字典时 相当于为元组中的元素命名 可作为局部变量使用
for (key, value) in dic {
print(key)
print(value)
}

// 占位符_
// 使用占位符忽略掉不想使用的变量
for (_, value) in dic {
print(value)
}
for (key, _) in dic {
print(key)
}

// 区域运算符在循环中的使用
for value in 0..<10 {
print(value)
}

for value in arr[0...3] {
print(value)
}

// 分支switch case

var point = (2, 0)

switch point {
case (0, 0):
print("原点")
case (_, 0):
print("x轴")
case (0, _):
print("y轴")
default:
print("象限内")
}
// 注意:switch 自带break 如果想执行下一分支使用fallthroungh 相当于去掉break
// switch 语句必须包含所有情况


// 值绑定

switch point {
case (0, 0):
print("原点")
case (let x, 0) where x == 2 || x == 1: // where 可以在分支基础上添加限定条件 当多个条件时 用&& ||
print("x轴 = \(x)")
case (0, _):
print("y轴")
default:
print("象限内")
}

//练习:给定一个字符串 遍历字符串 当遇到元音时跳出循环
var tempStr = "hfjfio"
for strChar in tempStr.characters {
switch strChar
{
case "a", "e", "i", "o", "u":
print(strChar)
break
default:
print(strChar)
}
}
// string.Characters取出字符串中的所有字符
// for ... in 循环 和 switch 语句 中的break首先被认定为switch语句中的break 此时需要给循环起个名字 指定break的是循环
// 上面代码写成下面就符合题意了
tempName: for strChar in tempStr.characters {

switch strChar {
case "a", "e", "i", "o", "u":
print(strChar)
break tempName
default:
print(strChar)
}
}