控制流…
快速地,对于条件需求,我们有“ if ”和“ switch ”语句,对于循环需求,我们有“ for-in ”,“ while ”,“ repeat-while ”,“ stride ”语句。
- 如果:
- 如果,否则,如果,嵌套if语句…
在“ if”语句中,条件必须是布尔表达式。 迅速地,我们使用“ if let”语句来检查可选变量是否具有值。如果存在nil值,则大括号中的代码将被跳过。 示例2显示了如何使用嵌套的ifs和else-if语句。
例如:
var myName:字符串? =“达里奥”
//如果存在名字,请用他的名字打招呼
如果让名称= myName {
print(“ Hello!\(name)”)//打印“ Hello! 达里奥”
}
范例2:
var totalMarks = 780
var isPassedInAllSubjects:Bool = true
如果totalMarks> 900 {
如果isPassedInAllSubjects {
打印(“获得第一名”)
}其他{
打印(“失败”)
}
}否则,如果totalMarks> 700 {
如果isPassedInAllSubjects {
打印(“ Got 2ndRank”)
}其他{
打印(“失败”)
}
}否则,如果totalMarks> 400 {
如果isPassedInAllSubjects {
打印(“获得第三名”)
}其他{
打印(“失败”)
}
}其他{
打印(“失败”)
}
2. 开关:
switch支持任何类型的数据,并且可以迅速进行各种比较操作。
例:
for i in 1 ... 100 {
switch (i % 3, i % 5) {
case (0, 0):
print("FizzBuzz")
case (0, _):
print("Fizz")
case (_, 0):
print("Buzz")
default:
print(i)
}
}
范例2:
let someValue = "horse"
switch someValue {
case "horse":
print("eats grass")
case "wolf":
print("eats meat")
default:
print("no match")
}
循环:
循环在重复过程中非常有帮助。
- for-in循环: for-in循环为范围或集合中的每个项目执行一组语句。 Swift还提供了两个范围运算符
lowerBound...upperBound
和lowerBound..<upperBound
,作为表示值范围的快捷方式。
1 ... 3 // 1,2,3
1 .. <3 // 1,2
//打印1-10
因为我在1 ... 10 {
打印(i)
}
//打印0-9
对于i in 0 .. <10 {
打印(i)
}
//相反
//这会打印10到1之间的数字
因为我在(1 ... 10).reversed(){
打印(i)
}
让我们尝试使用for-in循环和if条件的FizzBuzz算法:
2. 虽然:
while
循环执行一组语句,直到条件变为false
为止。
condition
{
statements
}
例如,为了print
从1到10的所有数字。我们需要创建一个初始值为1的变量。打印该值并将其增加一,直到大于10。
var i = 1
而我<= 10 {
打印(i)
我=我+ 1
}
3. repeat-while :
满足条件时repeat
循环。 while
和repeat
循环的区别在于repeat循环在执行循环语句后评估条件。
重复 {
statements
} while condition
var i = 1
重复{
打印(i)
我=我+ 1
}而我<10
4.大步向前
stride
是swift标准库中的函数,返回值序列start
, start + stride
, start + 2 * stride
,… end
),其中last是进度中小于end的最后一个值。
stride
函数适用于任何类型的数字:
stride(从:1,到:10,通过:2)// 1,3,5,7,9
步幅(从:1,到:2,通过:0.1)// 1.0,1.1 ... 1.9
多次执行一条语句
有时,您只想多次执行某些语句,但不关心拥有索引。 for
循环中的一个快速约定是,当您不打算在循环中使用变量时,请使用_
作为循环变量名称。
例如,要打印5次“ Hello World”,您可以使用:
_ in 1 ... 5 {
打印(“ Hello World”)
}
- 将数据从tableview传递到Swift中的标签栏视图控制器。
- 如何使Segueanimation水平没有UINavigationController?
- 用self.navigationController.hidesBarsOnSwipe = true隐藏导航栏,永久隐藏它
- Swift中的设计模式:装饰器模式
- 如何在swift中从“2015-06-26T00:10:00 + 01:00”得到yyyy-mm-dd hh:mm:ss格式
- 蒸气2入门-Restful API Swift Server
- NSData contentsOfUrl返回nil
- 如何将用户与涉及Apple状态通知的自动续订订阅相关联?
- RxSwift:Mengawasi可观察属性di Semua元素数组Secara Bersamaan dengan Observable.combineLatest()