课程表

Swift课程

工具箱
速查手册

Swift 条件语句

当前位置:免费教程 » 移动开发 » Swift

条件语句通过设定的一个或多个条件来执行程序,在条件为真时执行指定的语句,在条件为 false 时执行另外指定的语句。

可以通过下图来简单了解条件语句的执行过程:

Swift 提供了以下几种类型的条件语句:

语句 描述

if 语句

if 语句 由一个布尔表达式和一个或多个执行语句组成。

if...else 语句

if 语句 后可以有可选的 else 语句, else 语句在布尔表达式为 false 时执行。

if...else if...else 语句

if 后可以有可选的 else if...else 语句, else if...else 语句常用于多个条件判断。

内嵌 if 语句

你可以在 ifelse if 中内嵌 ifelse if 语句。

switch 语句

switch 语句允许测试一个变量等于多个值时的情况。

? : 运算符

我们已经在前面的章节中讲解了 条件运算符 ? :,可以用来替代 if...else 语句。它的一般形式如下:

  1. Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。

? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。


if 语句

一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

语法

Swift 语言中 if 语句的语法:

  1. if boolean_expression {
  2. /* 如果布尔表达式为真将执行的语句 */
  3. }

如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。

流程图

C 中的 if 语句

实例

  1. import Cocoa
  2.  
  3. var varA:Int = 10;
  4.  
  5. /* 检测条件 */
  6. if varA < 20 {
  7. /* 如果条件语句为 true 执行以下程序 */
  8. print("varA 小于 20");
  9. }
  10. print("varA 变量的值为 \(varA)");

在线运行实例

当上面的代码被编译和执行时,它会产生下列结果:

  1. varA 小于 20
  2. varA 变量的值为 10

if...else 语句

一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。

语法

Swift 语言中 if...else 语句的语法:

  1. if boolean_expression {
  2. /* 如果布尔表达式为真将执行的语句 */
  3. } else {
  4. /* 如果布尔表达式为假将执行的语句 */
  5. }

如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。

流程图

C 中的 if...else 语句

实例

  1. import Cocoa
  2.  
  3. var varA:Int = 100;
  4.  
  5. /* 检测布尔条件 */
  6. if varA < 20 {
  7. /* 如果条件为 true 执行以下语句 */
  8. print("varA 小于 20");
  9. } else {
  10. /* 如果条件为 false 执行以下语句 */
  11. print("varA 大于 20");
  12. }
  13. print("varA 变量的值为 \(varA)");

在线运行实例

当上面的代码被编译执行时,它会产生下列结果:

  1. varA 大于 20
  2. varA 变量的值为 100

if...else if...else 语句

一个 if 语句 后可跟一个可选的 else if...else 语句else if...else 语句 在测试多个条件语句时是非常有用的。

当你使用 if , else if , else 语句时需要注意以下几点:

  • if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。
  • if 语句后可以有 0 个或多个 else if 语句,else if 语句必须在 else 语句出现之前。
  • 一旦 else 语句执行成功,其他的 else if 或 else 语句都不会执行。

语法

  1. if boolean_expression_1 {
  2. /* 如果 boolean_expression_1 表达式为 true 则执行该语句 */
  3. } else if boolean_expression_2 {
  4. /* 如果 boolean_expression_2 表达式为 true 则执行该语句 */
  5. } else if boolean_expression_3 {
  6. /* 如果 boolean_expression_3 表达式为 true 则执行该语句 */
  7. } else {
  8. /* 如果以上所有条件表达式都不为 true 则执行该语句 */
  9. }

实例

  1. import Cocoa
  2.  
  3. var varA:Int = 100;
  4.  
  5. /* 检测布尔条件 */
  6. if varA == 20 {
  7. /* 如果条件为 true 执行以下语句 */
  8. print("varA 的值为 20");
  9. } else if varA == 50 {
  10. /* 如果条件为 true 执行以下语句 */
  11. print("varA 的值为 50");
  12. } else {
  13. /* 如果以上条件都为 false 执行以下语句 */
  14. print("没有匹配条件");
  15. }
  16. print("varA 变量的值为 \(varA)");

在线运行实例

当上面的代码被编译执行时,它会产生下列结果:

  1. 没有匹配条件
  2. varA 变量的值为 100

嵌套 if 语句

在 Swift 语言中,你可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。

语法

Swift 语言中 嵌套 if 语句的语法:

  1. if boolean_expression_1 {
  2. /* 当 boolean_expression_1 表达式 true 时执行 */
  3. if boolean_expression_2 {
  4. /* 当 boolean_expression_1 表达式 true 时执行 */
  5. }
  6. }

您可以嵌套 else if...else,方式与嵌套 if 语句相似。

实例

  1. import Cocoa
  2.  
  3. var varA:Int = 100;
  4. var varB:Int = 200;
  5.  
  6. /* 检测布尔条件 */
  7. if varA == 100 {
  8. /* 如果条件为 true 执行以下语句 */
  9. print("第一个条件为 true");
  10. if varB == 200 {
  11. /* 如果条件为 true 执行以下语句 */
  12. print("第二个条件也是 true");
  13. }
  14. }
  15. print("varA 变量的值为 \(varA)");
  16. print("varB 变量的值为 \(varB)");

在线运行实例

当上面的代码被编译执行时,它会产生下列结果:

  1. 第一个条件为 true
  2. 第二个条件也是 true
  3. varA 变量的值为 100
  4. varB 变量的值为 200

switch 语句

switch 语句允许测试一个变量等于多个值时的情况。 Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。

语法

Swift 语言中 switch 语句的语法:

  1. switch expression {
  2. case expression1 :
  3. statement(s)
  4. fallthrough /* 可选 */
  5. case expression2, expression3 :
  6. statement(s)
  7. fallthrough /* 可选 */
  8. default : /* 可选 */
  9. statement(s);
  10. }

一般在 switch 语句中不使用 fallthrough 语句。

这里我们需要注意 case 语句中如果没有使用 fallthrough 语句,则在执行当前的 case 语句后,switch 会终止,控制流将跳转到 switch 语句后的下一行。

如果使用了fallthrough 语句,则会继续执行之后的 case 或 default 语句,不论条件是否满足都会执行。

注意:在大多数语言中,switch 语句块中,case 要紧跟 break,否则 case 之后的语句会顺序运行,而在 Swift 语言中,默认是不会执行下去的,switch 也会终止。如果你想在 Swift 中让 case 之后的语句会按顺序继续运行,则需要使用 fallthrough 语句。

实例1

以下实例没有使用 fallthrough 语句:

  1. import Cocoa
  2.  
  3. var index = 10
  4.  
  5. switch index {
  6. case 100 :
  7. print( "index 的值为 100")
  8. case 10,15 :
  9. print( "index 的值为 10 或 15")
  10. case 5 :
  11. print( "index 的值为 5")
  12. default :
  13. print( "默认 case")
  14. }

在线运行实例

当上面的代码被编译执行时,它会产生下列结果:

  1. index 的值为 10 15

实例2

以下实例使用 fallthrough 语句:

  1. import Cocoa
  2.  
  3. var index = 10
  4.  
  5. switch index {
  6. case 100 :
  7. print( "index 的值为 100")
  8. fallthrough
  9. case 10,15 :
  10. print( "index 的值为 10 或 15")
  11. fallthrough
  12. case 5 :
  13. print( "index 的值为 5")
  14. default :
  15. print( "默认 case")
  16. }

在线运行实例

当上面的代码被编译执行时,它会产生下列结果:

  1. index 的值为 10 15
  2. index 的值为 5
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号