控制流…

快速地,对于条件需求,我们有“ if ”和“ switch ”语句,对于循环需求,我们有“ for-in ”,“ while ”,“ repeat-while ”,“ stride ”语句。

  1. 如果:
  • 如果,否则,如果,嵌套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")
}

循环:

循环在重复过程中非常有帮助。

  1. for-in循环: for-in循环为范围或集合中的每个项目执行一组语句。 Swift还提供了两个范围运算符lowerBound...upperBoundlowerBound..<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条件的FizzBu​​zz算法:

2. 虽然:

while循环执行一组语句,直到条件变为false为止。

condition {
statements
}

例如,为了print从1到10的所有数字。我们需要创建一个初始值为1的变量。打印该值并将其增加一,直到大于10。

  var i = 1 
而我<= 10 {
打印(i)
我=我+ 1
}

3. repeat-while :

满足条件时repeat循环。 whilerepeat循环的区别在于repeat循环在执行循环语句后评估条件。

重复 {
statements
} while condition

  var i = 1 
重复{
打印(i)
我=我+ 1
}而我<10

4.大步向前

stride是swift标准库中的函数,返回值序列startstart + stridestart + 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”)
}