Swift语言小结2

有到周末了,我们谈谈控制流的问题那就是使用 if 和 switch 来进行条件操作,使用 for-in 、 for 、 while 和 do-while 来进行循环。包裹条件和循环变量括号可以省略,但是语句体的大括号是必须的。

let DemoScores = [23, 56, 109, 97, 22]
var teamScore = 0
for score in DemoScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
teamScore

在上面的代码中,if score必须是一个布尔表达式——这意味着像 if score { … } 这样的代码将报错,而且避免了其于零的对比。

当我们申明一个可选值的变量的时候,我们可以用 if 和 let 来处理值缺失的情况。有些变量的值是可选的。一个可选的值可能是一个具体的值或者是 nil ,表示值缺失。在类型后面加一个问号来标记这个变量的值是可选的如下代码。

var demoString: String? = “Hi”
demoString == nil
var demoName: String? = “MyApples”
var greeting = “Hello!”
if let name = demoName {
greeting = “Hello, (name)”
}

如上代码当我们声明的变量可选值为nil的时候,条件会自动判断其为 false ,大括号中的代码会被跳过。如果不是 nil ,会将值赋给 let 后面的常量,这样代码块中就可以使用这个值了。

switch可以支持任意类型的数据以及各种比较操作,下面我们就看看它的简单用法吧。

let demotable = “red pepper”
switch demotable {
case “celery”:
let demotableComment = “Add some raisins and make ants on a log.”
case “cucumber”, “watercress”:
let demotableComment = “That would make a good tea sandwich.”
case let x where x.hasSuffix(“pepper”):
let demotableComment = “Is it a spicy (x)?”
default:
let demotableComment = “Everything tastes good in soup.”
}

由上我们可以看出不是一种数据类型的比较,并且在switch里如果有满足条件的会制动停止向下运行,不需要break

我们可以使用 for-in 来遍历字典,需要两个变量来表示每个键值对,我们可以根据键找到相应的值。字典是一个无序的集合,所以他们的键和值以任意顺序迭代结束。

let demoNumbers = [
“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 demoNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
largest

下面我们看看while来重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾如下带代码:

var i = 2
while i < 100 {
i = i * 2
}
i

var j = 2
do {
j = j * 2
} while j < 100
j

我们可以在循环中使用 ..< 来表示范围,也可以使用传统的写法,其中这两者是等价的如下代码:

var myLoopFirst = 0
for i in 0..<4 {
myLoopFirst += i
}

myLoopFirst
var myLoopSecond = 0
for var i = 0; i < 4; ++i {
myLoopSecond += i
}
myLoopSecond

我们在使用 ..< 创建的范围不包含上界,但是当我们想包含的话需要使用 … 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值