苹果Apple Swift编程语言中文版入门教程(2)

来源:www.18183.com作者:集落时间:2014-06-03
苹果在WWDC第一天早晨的kyenote中说道全新的开发者编程语言Swift(雨燕),本文小编为您带来苹果Apple Swift编程语言中文版入门教程。

4 控制流

使用 if 和 switch 作为条件控制。使用 for-in 、 for 、 while 、 do-while 作为循环。小括号不是必须的,但主体的大括号是必需的。

let individualScores = [75, 43, 103, 87, 12]

var teamScore = 0

for score in individualScores {

if score > 50{

teamScores += 3

}

else {

teamScores += 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)"

}

Note

练习

改变 optionalName 为 nil 。在问候时会发生什么?添加一个 else 子句在 optionalName 为 nil 时设置一个不同的值。

如果可选值为 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 good tea sandwich."

case let x where x.hasSuffix("pepper"):

let vegetableComment = "Is it a spicy \(x)?"

default: //by gashero

let vegetableComment = "Everything tastes good in soup."

}

Note

练习

尝试去掉 default ,看看得到什么错误。

在执行匹配的情况后,程序会从 switch 跳出,而不是继续执行下一个情况。所以不再需要 break 跳出 switch 。

可使用 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 = 0

for (kind, numbers) in interestingNumbers{

for number in numbers {

if number > largest

{

largest = number

}

}

}

Note

练习

添加另一个变量来跟踪哪个种类中的数字最大,也就是最大的数字所在的。

使用 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

使用 .. 构造范围忽略最高值,而用 ... 构造的范围则包含两个值。

免责声明:文中图文均来自网络,如有侵权请联系删除,18183手游网发布此文仅为传递信息,不代表18183认同其观点或证实其描述。

18183手游网发布此文仅为传递信息,不代表18183认同其观点或证实其描述。
更多>>

美女福利

传奇开服表

现在居然还能靠玩传奇打米?赶快叫上兄弟们一起来打米吧

为传奇玩家推荐真的能打米的传奇游戏、传奇页游和传奇端游,想要什么样的传奇游戏这里全都有,赶快叫上自己的好友们开启新一轮的热血传奇吧!
查看原文》》

热门资讯

去看看>>

每日抽奖

热门发号

乱斗西游2超级联赛18183礼包 乱斗西游2超级联赛18183礼包

热门游戏

精品推荐

  • 新游期待榜
  • 热门手游榜
      wu