swift流程控制
//: Playground - noun: a place where people can play import UIKit //使用 if 和 switch 作为条件控制。使用 for-in 、 for 、 while 、 do-while 作为循环。小括号不是必须的,但主 体的大括号是必需的。 let individualScores = [75,43,216)"> 103,216)">87,216)"> 12] var teamScore = 0 for score in individualScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } } teamScore /*在 if 语句中,条件必须是布尔表达式,这意味着 if score { ... } 是错误的,不能隐含的与0比较。 你可以一起使用 if 和 let 来防止值的丢失。这些值是可选的。可选值可以包含一个值或包含一个 nil 来指定值还 不存在。写一个问号 "?" 在类型后表示值是可选的。*/ var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello" if let name = optionalName { greeting = "Hello,(name)" } else { greeting = "Word" } //如果可选值为 nil,条件判断为 false, //switch 支持多种数据以及多种比较,不限制必须是整数 let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber","watercress": let vegetableComment = "That would make a goog tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy (x)?" default: let vegetableComment = "Everything tastes goog in soup." } //可使用 for-in 来迭代字典中的每个元素,提供一对名字来使用每个键值对。 let interestingNumbers = [ "Prime": [2,216)">3,216)"> 5,216)">7,216)"> 11,216)">13], "Fibonacci": [1,216)"> 2,216)"> 90,216)">8], "Square": [4,216)"> 9,216)">16,216)"> 25], ] var largest = 0 var str: String? for (kind,numbers) in interestingNumbers { for number in numbers { if number > largest { largest = number str = kind }
} } largest str //使用 while 来重复执行代码块直到条件改变。循环的条件可以放在末尾来确保循环至少执行一次。 var n = 2 while n < 100 { n = n * 2 } n var m = 2 do { m = m * 2 } while m < 100 m //你可以在循环中保持一个索引,通过 ".." 来表示索引范围或明确声明一个初始值、条件、增量。这两个循环做相同的 事情: var firstForLoop = 0 for i in 0..<3 { firstForLoop += i } firstForLoop var secondForLoop = 0 for var i = 0;i < 3;i++ { secondForLoop += 1 } secondForLoop //使用 ..< 构造范围忽略最高值,而用 ... 构造的范围则包含两个值。 var num1 = var num2 = 1..<4 { num1++ } num1 1...4 { num2++ } num2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |