目录
if else
func ifElseExpression() -> Void {
/**
if 后面的条件可以省略小括号 条件后面的大括号不可以省略
if后面的条件只能是Bool类型
*/
//1、小括号可以省略、大括号不可以省略
do{
let age = 18
if age<18 {
print("age < 18")
}else if age == 18 {
print("age = 18");
}else if age>18 {
print("age>18")
}
}
//2、if后面的条件只能是Bool类型
do{
let age2 = 18
//报错:'Int' is not convertible to 'Bool'
//if age2 {}
//正确
if age2==18 {}
}
}
while循环
func whileExpression() -> Void {
//1、Swift3之后去掉了 num++ num--运算符
var num = 3
while num>0 {
print("num is \(num)")
num-=1
}
//2、相当于 do while
var num2 = 3
repeat{
print("num2 is \(num2)")
num2-=1
} while num2>3
}
for循环
func forExpression() -> Void {
//0、C-style for statement has been removed in Swift 3
print("------------------0---------------------")
do{
//for(var i = 0;i<10;i++){}
}
//1、闭区间运算符 ...
print("------------------1---------------------")
do{
for i in 0...3 {
print(i)
}
let range = 0...3
for i in range {
print(i)
}
let c = 0
let c2 = 3
for i in c...c2 {
print(i)
}
for i in 0...c2 {
print(i)
}
}
//2、i 默认是let只能取值不能修改,有需要时可以声明为var
print("------------------2---------------------")
do{
for var i in 1...3 {
i+=5
print(i)
}
}
//3、如果for循环内用不到i 可以使用 _ 忽略
print("------------------3---------------------")
do{
for _ in 0...3 {
print("for循环")
}
}
//4、半开区间运算符
print("------------------4---------------------")
do{
for i in 1..<5 {
print(i)
}
}
//5、区间运算符在数组上
print("------------------5---------------------")
do{
let array = ["Anna","Alex","Brian","Jack"];
for name in array {
print(name)
}
for name in array[1...2] {
print(name)
}
for name in array[1...] {
print(name)
}
}
//6、字符串与区间运算符
print("------------------6---------------------")
do{
let stringRange = "a"..."f"
print(stringRange.contains("d"))
for i in "hello" {
print(i);
}
}
//7、带间隔的区间值
print("------------------7---------------------")
do{
let fromV = 4 //起始
let throughV = 11 //终止
let intervalV = 2 //间隔
for tickMark in stride(from:fromV, through:throughV, by: intervalV) {
print(tickMark)
}
}
}
swich
func swichExpression() -> Void {
//1、case 、defaul后面不能写大括号{}
let num4 = 1
switch num4 {
case 0:
//print("num4 is 0")
break
case 1:
print("num4 is 1")
break
default:
//print("num4 is other")
break
}
//2、默认可以不写break 并不会贯穿到后面的条件
let num42 = 0
switch num42 {
case 0:
print("num42 is 0")
case 1:
print("num42 is 1")
default:
print("num42 is other")
}
//3、fallthrough可以实现贯穿效果
let num43 = 0
switch 0 {
case 0:
print("num43 is 0")
fallthrough
case 1:
print("num43 is 1")
fallthrough
default:
print("num43 is other")
}
//4、swich必须要保证能处理所有情况 否则会报错 Switch must be exhaustive
//另外 case 与 default 后边必须跟一条语句 没有逻辑时 可以写 break
let num44 = 0
switch num44 {
case 0:
print("num44 is 0")
case 1:
print("num44 is 1")
default:
break
}
//5、复合条件
//swich 也支持Character、String类型
let string45 = "Jack"
switch string45 {
case "Jack":
fallthrough
case "Rose":
print("Right person")
default:
break
}
//6、复合条件的另一种写法
let string46 = "Rose"
switch string46 {
case "Jack","Rose":
print("Right person")
default:
break
}
//7、区间匹配
let count47 = 62
switch count47 {
case 0:
print("none")
case 1..<5:
print("a few")
case 5..<12:
print("several")
case 12..<100:
print("dozens of")
default:
break
}
//8、元组匹配
let poin48 = (1,1)
switch poin48 {
case (0,0):
print("the origin")
case (_,0):
print("on the x-axis")
case (0,_):
print("on the y-axis")
case (-2...2,-2...2):
print("inside the box")
default:
print("outsize of the box")
}
//9、值绑定
let point49 = (2,0)
switch point49 {
case (let x,0):
print("on the x-axis with an x value of \(x)")
case (0,let y):
print("on the y-axis with an y value of \(y)")
case (let x, let y):
print("somewhere else at (\(x),\(y))")
}
}
where
func whereExpression(){
let poin51 = (1,-1)
switch poin51 {
case (let x, let y) where x==y:
print("on the line x = y")
case (let x,let y) where x == -y:
print("on the line x=-y")
case (let x,let y):
print("\(x),\(y) is just some arbitrary point")
}
}
标签语句
func outerExpression() -> Void {
outer:for i in 1...4 {
print("i == ",i)
for j in 1...4 {
//结束内部的本次循环进入下次循环
if i==2 && j==2 {continue}
print("j = ",j)
}
}
print("--------------------------")
outer:for i in 1...4 {
print("i == ",i)
for j in 1...4 {
//不仅结束内部本次循环 也结束外部本次循环 外部循环进入下次循环
if i==2 && j==2 {continue outer}
print("j = ",j)
}
}
print("--------------------------")
outer:for i in 1...4{
print("i == ",i)
for j in 1...4 {
//结束内部的for循环
if i==2 && j == 2 {break}
print("j = ",j)
}
}
print("--------------------------")
outer:for i in 1...4{
print("i == ",i)
for j in 1...4 {
//内部 外部 彻底结束
if i==2 && j == 2 {break outer}
print("j = ",j)
}
}
}
行者常至,为者常成!