Swift 基本语法04-"switch"和"for"

96
宫城良田__
2017.05.16 21:32* 字数 300
一个iOS开发初级菜鸡.png

Swift 基本语法01-Swift简介
Swift 基本语法02-"let"和"var"
Swift 基本语法03-"if let"和"guard let"
Swift 基本语法05-"String"
Swift 基本语法06-数组和字典

1. switch 语法简介

1> switch可以针对任意类型的值进行分支,不再局限整数

override func viewDidLoad() {
    super.viewDidLoad()
    
    demo(num: "10")
}

func demo(num: String) {
    
    switch num {
    case "10":
        print("优")  // 输出结果:优
    default:
        print("一般")
    }
}

2> switch一般不需要break

OC版本:

switch (num) {
    case 10:
    {
        NSLog(@"优");
    }
        break;
        
    default:
        break;
}

swift 版本:

switch num {
case "10":
    print("优")
default:
    print("一般")
}

3> swift如果要多值,使用,分隔

override func viewDidLoad() {
    super.viewDidLoad()
    
    demo(num: "9")
}

func demo(num: String) {
    
    switch num {
    case "10", "9":
        print("优")  // 输出结果:优
    default:
        print("一般")
    }
}

4> 所有的分支至少需要一条指令,如果什么都不干,才用break

switch num {
case "10", "9":
    print("优")
/**
 * 1.如果只写(case "8":)会出现红色错误提示:'case' label in a 'switch' should have at least one executable statement
 * 2.根据提示点击修复,会自行添加'break'
 */
case "8": break
default:
    print("一般")
}

2. for 循环

1> 传统的for循环在swift 3.0已经被取消,i++ / ++i也从swift 3.0被取消

// C-style for statement has been removed in Swift 3
// '++' is unavailable: it has been removed in Swift 3
for var i = 0; i < 10; i++ {
    
}

Extension:
i++会多一个临时变量,i++大多数程序员使用,而++i一般是 C++/C 程序员使用。
现在代码已经对i++++i进行改进,没有性能上的太大区别,我们用的时候,只需要记住i++是后加,++i是先加就可以了(swift里已经取消)。

num = i++  等价代码
temp = i
num = temp
i = temp + 1

num = ++i 等价代码
i = i + 1
num = i

2> swift里面的for循环

// 变量'i'在[0,5)进行循环
// 注意:(0..<5)之间不能乱插入空格,不然会报错
for i in 0..<5 {
    print(i)    // 输出:0,1,2,3,4
}

print("======")

// 变量'i'在[0,5]进行循环
for i in 0...5 {
    print(i)    // 输出:0,1,2,3,4,5
}

3> 范围定义是一个固定的格式,一定要遵守规范

// CountableRange<Int>
let r1 = 0..<5
print(r1)   // 输出:0..<5

// CountableClosedRange<Int>
let r2 = 0...5
print(r2)   // 输出:0...5

4> for循环反向输出-reversed()

// 反向输出 reversed()
for i in (0..<10).reversed() {
    print(i)    // 输出:9,8,7,6,5,4,3,2,1,0
}
Swift