Swift:控制流程语句

4,075 阅读4分钟

Swift是一门结构化编程语言,支持多种控制流程语句,包括条件语句、循环语句和控制转移语句。本文将介绍Swift中的各种控制流程语句及其用法。

条件语句

Swift中的条件语句包括if语句、switch语句和guard语句。这些语句允许我们根据条件执行不同的代码块。

if语句

if语句的基本语法如下:

if condition {
    // code to execute if condition is true
} else {
    // code to execute if condition is false
}

如果条件condition为真,则执行第一个代码块,否则执行第二个代码块。if语句也可以使用else if子句来检查多个条件。

if condition1 {
    // code to execute if condition1 is true
} else if condition2 {
    // code to execute if condition2 is true
} else {
    // code to execute if both conditions are false
}

switch语句

switch语句可以根据一个表达式的值执行不同的代码块。它的基本语法如下:

switch expression {
case pattern1:
    // code to execute if expression matches pattern1
case pattern2 where condition:
    // code to execute if expression matches pattern2 and condition is true
default:
    // code to execute if none of the patterns match
}

其中expression是要检查的表达式,pattern1和pattern2是要匹配的模式,可以是数字、字符、字符串或其他类型。在Swift中,switch语句不会自动从一个case语句“落入”到下一个case语句,所以每个case语句必须以break、return、continue或throw结束。

guard语句

guard语句用于验证某个条件是否为真,如果条件不为真,则立即退出当前代码块。它的基本语法如下:

guard condition else {
    // code to execute if condition is false
    // must include a transfer of control statement such as return, break, continue, or throw
}

// code to execute if condition is true

guard语句的条件必须是一个返回布尔值的表达式,如果条件为false,则执行else块中的代码。guard语句必须包含一个跳转控制语句,比如return、break、continue或throw。

下面是一个使用guard语句的例子:

func validateInput(_ input: String?) -> Bool {
    guard let input = input, !input.isEmpty else {
        return false
    }
    // validate input and return true or false
}

在上面的例子中,我们定义了一个validateInput函数来验证输入是否有效。如果输入为nil或者为空字符串,则使用guard语句提前退出函数,并返回false。否则,我们可以在函数中对输入进行验证,并根据验证结果返回true或false。

循环语句

Swift中的循环语句包括for-in循环、while循环和repeat-while循环。

for-in循环

for-in循环用于遍历一个集合中的元素,例如数组或字典。它的基本语法如下:

for element in collection {
    // code to execute for each element
}

其中element是集合中的每个元素,collection是要遍历的集合。在循环中可以对每个元素执行一些操作。

while循环

while循环用于在某个条件为真的情况下重复执行一段代码。它的基本语法如下:

while condition {
    // code to execute while condition is true
}

其中condition是要检查的条件,如果条件为真,则重复执行代码块中的代码。如果条件一开始就为false,则代码块不会被执行。

repeat-while循环

repeat-while循环与while循环类似,不同的是它会在每次循环结束后检查条件。它的基本语法如下:

repeat {
    // code to execute at least once
} while condition

代码块中的代码至少会被执行一次,然后循环会在检查条件condition之前重复执行。如果条件为真,则继续重复执行循环,否则跳出循环。

控制转移语句

Swift中的控制转移语句包括break、continue和return语句。

break语句

break语句用于在循环中提前退出循环。它可以用于for-in循环、while循环和switch语句中。

for element in collection {
    if condition {
        break
    }
    // code to execute for each element
}

在上面的例子中,如果满足某个条件,则会提前退出循环。

continue语句

continue语句用于跳过当前循环中的一个迭代,继续执行下一个迭代。它可以用于for-in循环和while循环中。

for element in collection {
    if condition {
        continue
    }
    // code to execute for each element except those that satisfy the condition
}

在上面的例子中,如果满足某个条件,则会跳过当前迭代,继续执行下一个迭代。

return语句

return语句用于从函数或闭包中返回值并结束函数或闭包的执行。它可以带有一个返回值,也可以没有返回值。

func myFunction() -> Int {
    if condition {
        return 1
    } else {
        return 2
    }
}

在上面的例子中,如果条件为真,则返回1,否则返回2。

总结

本文介绍了Swift中的条件语句、循环语句和控制转移语句。这些语句可以帮助我们根据条件执行不同的代码块,重复执行代码块,以及在循环中跳过某些迭代或提前退出循环。熟练掌握这些语句可以使我们的代码更加灵活和高效。