5.控制流

  Swift提供了多种流程控制结构,包括可以多次执行任务的while循环,基于特定条件选择执行不同代码分支的if、guard和switch语句,还有控制流程跳转到其他代码的break和continue语句。

  Swift 还增加了for-in循环,用来更简单地遍历数组(array),字典(dictionary),区间(range),字符串(string)和其他序列类型。

  Swift 的switch语句比 C 语言中更加强大。在 C 语言中,如果某个 case 不小心漏写了break,这个 case 就会贯穿至下一个 case,Swift 无需写break,所以不会发生这种贯穿的情况。case 还可以匹配更多的类型模式。

1.For-In 循环

  • swift使用for-in循环来遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。
for index in 1...5
{
    print("\(index) times 5 is \(index * 5)");
}

//如果不需要知道区间序列内每一项的值,可以使用下划线(_)替代变量名来忽略对值的访问
for _ in 1...5
{
    print("Hello");
}

数组、字典的遍历

2.While 循环

  while循环运行一系列语句直到条件变成false。这类循环适合使用在第一次迭代前迭代次数未知的情况下。Swift 提供两种while循环形式:

  1. while循环,每次在循环开始时计算条件是否符合;
  2. repeat-while循环,每次在循环结束时计算条件是否符合。
var start = 0;
let end = 10;
var diceRoll = 0;
while start < end
{
    print(start);
    start += 1;
}

start = 0;

repeat
{
    print(start);
    start += 1;
}while start < end

3.条件语句

  • 根据特定的条件执行特定的代码通常是十分有用的,例如:当输入的值太大或太小时,向用户显示一条消息等。
  • Swift 提供两种类型的条件语句:if语句和switch语句。通常,当条件较为简单且可能的情况很少时,使用if语句。而switch语句更适用于条件较复杂、可能情况较多且需要用到模式匹配(pattern-matching)的情境。
//IF
let temperatureInFahrenheit = 90;
if temperatureInFahrenheit <= 32
{
    print("It‘s very cold. Consider wearing a scarf.");
}
else if temperatureInFahrenheit >= 86
{
    print("It‘s really warm. Don‘t forget to wear sunscreen.");
}
else
{
    print("It‘s not that cold. Wear a t-shirt.");
}

//Switch基础用法
let someCharacter: Character = "e";
switch someCharacter
{
case "a", "e", "i", "o", "u":
    print("\(someCharacter) is a vowel");
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
     "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    print("\(someCharacter) is a consonant");
default:
    print("\(someCharacter) is not a vowel or a consonant");
}
//说明:
//1.不需要在 case 分支中显式地使用break语句
//2.一个 case 也可以包含多个模式,用逗号把它们分开;
//3.每一个 case 分支都必须包含至少一条语句。

//Switch区间匹配
let approximateCount = 62;
switch approximateCount
{
case 0:
    print("no");
case 1 ..< 5:
    print("a few");
case 5 ..< 12:
    print("several");
case 12 ..< 100:
    print("dozens");
case 100 ..< 1000:
    print("hundreds");
default:
    print("many");
}

//Switch元组匹配
let somePoint = (1, 1);
switch somePoint
{
case (0, 0):
    print("(0, 0) is at the origin");
case (let x, 0):  //值绑定
    print("(\(somePoint.0), 0) is on the x-axis, x value of \(x)");
case (0, _):
    print("(0, \(somePoint.1)) is on the y-axis");
case (-2...2, -2...2):
    print("(\(somePoint.0), \(somePoint.1)) is inside the box");
default:
    print("(\(somePoint.0), \(somePoint.1)) is outside of the box");
}
//说明:使用下划线(_)来匹配所有可能的值

4.控制转移语句

   控制转移语句改变代码的执行顺序,通过它可以实现代码的跳转。Swift 有五种控制转移语句:

  1. continue:continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
  2. break:break语句会立刻结束整个控制流的执行。
  3. fallthrough:fallthrough关键字不会检查它下一个将会落入执行的 case 中的匹配条件。fallthrough简单地使代码执行继续连接到下一个 case 中的执行代码,这和 C 语言标准中的switch语句特性是一样的。
  4. return
  5. throw
时间: 2025-01-13 10:09:45

5.控制流的相关文章

Kotlin控制流

Kotlin中的控制流用于流程控制的表达式如if.when.for.while If表达式 Kotlin中,if是一个表达式,它会返回一个值.它可以用来替代三元运算符(条件?然后:否则) if var a = 1 var b = 2 var max = a if(b > a) max = b   println(max)             //2 if else var min: Int if(a < b){     min = a }else{     min = b } printl

java基础-控制流语句

一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句. 接下来分三部分介绍Java的控制流语句,他们是判断语句(if-then, if-then-else, switch),循环语句(for, while, do-while)和跳转语句(break, continue, return). 判断语句 if-then语句 if-then语句是控制流语句中最基本的语句,它告诉程序如果制定的条件为true,则执行一段特定代码. if-then-el

C语言基础——控制流

控制流指定了语句的执行顺序. 1.顺序结构 2.选择结构 if:if else:if else if  else: switch: switch执行效率高,局限性大,case后面一定要加break: 表达式必须返回整数值:case必须是常量表达式. switch只能针对int,char 等基本数据类型使用: 3.循环结构 while: for:前置测试循环 先进行判断,在循环 do/while;后置测试循环 先循环一次,再判断 4.break, continue, return; break,

第九篇 Integration Services:控制流任务错误

本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentExecutables属性.我们检查.演示并测试优先约束赋值为"成功"."完成"."失败"时对工作流的影响.我们学习了SSIS变量和表达式,并将它们应用到优先约束.这一篇,we introduce fault tolerance by examinin

8.0 异常控制流 第8章 《深入理解计算机系统 原书第2版》

异常控制流 定义:现代操作系统对于控制流发生突变所作出的反应 全称:Exception Control Flow 缩写:ECF 各层形态: 1.硬件层:硬件检测到的事件会触发控制突然转移到异常处理程序: 2.操作系统层:在操作系统层,内核通过上下文转换,将控制从一个用户进程转移到另外一个用户进程: 3.应用层:一个进程可以发信号到另外一个进程,而接收者会将控制突然转移到它的一个信号处理程序. 描述:一个程序可以通过回避通常的栈规则,并执行到其他函数中任意位置的非本地跳转来对错误做出的反应. 工作

【语言对比】控制流语法对比

在了解各个语言支持的数据类型之后,接下来要对比的,就是各种语言支持的各种控制结构. 1.选择控制结构 Python的选择语句if/elif/else : 语法含义上和C++.JAVA语言没有区别,只是在语法格式上有所不同.首先,采用elif作为else if的缩写(其他的脚本语言中也大部分是这样),其次,对于每一个选择条件,有冒号作为截止,其他的语言都是采用{}来标识代码段的.Python中是没有类似于JAVA和C++中的switch语句的,至于原因,是因为python中有一个很好的方式能够代替

[Python 3系列]控制流

编程的真正力量不仅仅在于运行一条条的指令,就像任务清单那样.根据表达式求值的结果,程序可以决定下一步的操作."控制流语句"决定了在什么条件下执行哪些python语句. 布尔值 虽然整型.浮点型和字符串数据类型有无数种可能的值,但"布尔"数据类型只有两种值:True和False.在作为python代码输入时,布尔值True和False不像字符串,两边没有引号,它们总是以大写字母开头.布尔值也可以用在表达式中,并且可以保存在变量中.如果大小写不正确,或者试图用True和

Swift3.0P1 语法指南——控制流

原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html#//apple_ref/doc/uid/TP40014097-CH9-ID120 1.For循环 (1)for in 使用for-in来遍历一个集合里的元素. 1 for index in 1...5 { 2 print("\(index)

4、Python控制流

4-1.Python控制流 控制流的类型有三种: 1,顺序结构: 2,分支结构: (if) 3,循环结构:(while,for) 4-2.分支结构if 格式: if 是这样: 执行这一部分的语句 elif 是这样: 执行这一部分的语句 else: 执行这部分语句 例子: 4-3.循环结构while 格式: while 条件为真: 循环执行该部分语句 else: 条件为假,则执行这部分语句 #else部分可以省略 例子: 例子: 4-4.循环结构for 格式: for i in 集合: 执行该部分

异常控制流 第十周11.15~11.22

第八章 异常控制流 控制流:控制转移序列. 控制转移:从一条指令到下一条指令. 异常控制流:现代操作系统通过使控制流发生突变来对系统状态做出反应,这些突变称为异常控制流. 作为程序员,理解ECF很重要,这有很多原因: 理解ECF将帮助你理解重要的系统概念.ECF是操作系统用来实现I/O.进程和虚拟存储器的基本机制,在能够真正理解这些重要概念之前,你必须须理解ECF. 理解ECF将帮助你理解应用程序是如何与操作系统交互的.应用程序通过一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务. 理解