Swift初体验-控制流

来源:互联网 发布:淘宝达人刷一万粉丝 编辑:程序博客网 时间:2024/06/09 19:47
//: Playground - noun: a place where people can playimport UIKit/**    1. 条件操作: if & switch    2. 循环操作: for-in & for & while & repeat-while    * 语句体的 {} 是 “必须的” */let individualScores = [75, 43, 103, 87, 12]var teamScore = 0for score in individualScores {    if score > 50 {        teamScore += 3    } else {        teamScore += 1    }}print(teamScore)// 附加案例/** 可选值: Optional    1. 可选值表示,该值可能为空,也可能有确定的值    2. 可选值用 "?"来表示    3. 可以使用 ?? 来处理值缺失的情况 */var optionalStringValue:String? = nilprint(optionalStringValue == nil)optionalStringValue = "Hello"print(optionalStringValue == nil)var aOptionalArray :[String]? = nilvar aOptionalString : String? = nilprint(aOptionalArray ?? "可选值为空")print(aOptionalString ?? "可选值为空")aOptionalArray = ["roly", "bob", "rice"]print(aOptionalArray ?? "数组为空")// 测试打印可选项问题var bOptionStringValue : String? = "Bob"// print(bOptionStringValue)print(bOptionStringValue ?? "")print(bOptionStringValue!)print(bOptionStringValue as Any)/**if:    1. if 语句的必须是一个布尔表达式,没有非0即真的概念,if score {...} 是错误的    2. if 后面的 {} 是必须的    3. if let 可以处理值缺失情况,,可选值(Optional)        格式:            if let 接受常量 = 可选值 {                // 如果可选值不为 nil, 就会执行此处代码,并且可选值会赋值给 “接受常量”                // “接受常量” 作用域仅仅在这个代码块之间            }*/var optionalString : String? = "Hello"print(optionalString == nil)var optionalName : String? = "John Appleseed"var greeting = "Hello "if let name = optionalName {    greeting = greeting + name}greeting// name/** switch:    1. switch 可以比较任意的类型的数据    // 2. switch 必须要有可以被执行, default是必须的 fix:// 枚举里面写的swift 如果所有的条件都有的话, default 不是必须的    3. switch 的每个分之不需要break,匹配到对应的分支之后,switch会退出程序,不会继续向下执行,因此不需要在每个分之后 添加 break */let vagetable = "celery"switch vagetable {case "celery":    print("add some raisins and ants on a log")    print("excute 2 lines Code")case "cucumber", "watercress":    print("That would make a good tea sandwich")case let x where x.hasPrefix("pepper"):    print("Is it a spicy \(x)?")default:    print("Everything tastes good in soup.")}/** for-in: 遍历数组和字典 */let interestingNumbers = [    "Prime" : [2,3,5,7,11,13],    "Fibonacci" : [1,1,2,3,5,8],    "Square" : [1,4,9,16,25],]var largest = 0var interestingName : String? = nilfor (kind, numbers) in interestingNumbers {    for number in numbers {        if number > largest {            interestingName = kind            largest = number        }    }}print("The largest number is \(largest), equal name is \(interestingName ?? "")")/** while: 当满足条件的时候才会执行 repeat-while: 至少会执行一次 */var n = 2while n < 100 {    n *= 2}print(n)var m = 2repeat {    m = m * 2} while m < 100print(m)/**..<:[), 前闭后开区间... [] 前闭后闭的区间 */var total = 0for i in 0..<4 {    total += i // 0 + 1 + 2 + 3}print(total)var sum = 0for i in 0...4 {    sum += i // 0 + 1 + 2 + 3 + 4}print(sum)
0 0
原创粉丝点击