IOS Swift 从入门到精通: For 循环, While 循环, 重复循环, 退出循环, 退出多重循环, 跳过项目, 无限循环

2024-06-22 14:28

本文主要是介绍IOS Swift 从入门到精通: For 循环, While 循环, 重复循环, 退出循环, 退出多重循环, 跳过项目, 无限循环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • For 循环
  • While 循环
  • 重复循环
  • 退出循环
  • 退出多重循环
  • 跳过项目
  • 无限循环
  • 总结

For 循环

Swift 有几种编写循环的方法,但它们的底层机制是相同的:重复运行一些代码,直到条件计算为假。

Swift 中最常见的循环是一个for循环:它将循环遍历数组和范围,并且每次循环时它都会取出一个项目并分配给一个常量。

例如,这里有一个数字范围:

let count = 1...10

我们可以使用for循环来打印每个项目,如下所示:

for number in count {print("Number is \(number)")
}

我们也可以对数组做同样的事情:

let albums = ["Red", "1989", "Reputation"]for album in albums {print("\(album) is on Apple Music")
}

如果您不使用循环提供的常量for,则应该使用下划线,以便 Swift 不会创建不必要的值:

print("Players gonna ")for _ in 1...5 {print("play")
}

While 循环

编写循环的第二种方式是使用while:给它一个要检查的条件,它的循环代码将不断循环,直到条件不满足。

例如,我们可以使用while循环来模拟孩子在捉迷藏游戏中数数:我们从一开始,一直数到 20(包括 20),同时打印出每个数字,然后在循环结束后打印“准备好了没”。

在 Swift 中它看起来是这样的:

var number = 1while number <= 20 {print(number)number += 1
}print("Ready or not, here I come!")

重复循环

编写循环的第三种方式并不常用,但是它很容易学习,我们也可以介绍一下:它被称为循环repeat,它与while循环完全相同,只是要检查的条件在最后。

因此,我们可以像这样重写捉迷藏的示例:

var number = 1repeat {print(number)number += 1
} while number <= 20

print(“Ready or not, here I come!”)
因为条件出现在循环的末尾repeat,所以循环内的代码总是会执行至少一次,而while循环在第一次运行之前会检查其条件。

例如,此print()函数永远不会运行,因为false它始终为假:

while false {print("This is false")
}

Xcode 甚至会警告我们该print()行永远不会被执行。

另一方面,此print()函数将运行一次,因为repeat只有在循环运行后条件才会失败:

repeat {print("This is false")
} while false

退出循环

您可以使用关键字随时退出循环break。为了尝试这一点,让我们从while一个为火箭发射倒计时的常规循环开始:

var countDown = 10while countDown >= 0 {print(countDown)countDown -= 1
}print("Blast off!")

在这种情况下,指挥宇航员在倒计时中途感到无聊并决定跳过剩余部分并立即发射:

while countDown >= 0 {print(countDown)if countDown == 4 {print("I'm bored. Let's go now!")break}countDown -= 1
}

经过这样的改变,一旦countDown达到 4,宇航员的消息就会被打印出来,并且循环的其余部分会被跳过。

退出多重循环

如果将一个循环放在另一个循环内,这就称为嵌套循环,同时想要跳出内层循环和外层循环的情况并不少见。

举个例子,我们可以编写一些代码来计算从 1 到 10 的乘法表,如下所示:

for i in 1...10 {for j in 1...10 {let product = i * jprint ("\(i) * \(j) is \(product)")}
}

如果我们想中途退出,我们需要做两件事。首先,我们给外循环一个标签,如下所示:

outerLoop: for i in 1...10 {for j in 1...10 {let product = i * jprint ("\(i) * \(j) is \(product)")}
}

其次,在内循环中添加条件,然后break outerLoop同时退出两个循环:

outerLoop: for i in 1...10 {for j in 1...10 {let product = i * jprint ("\(i) * \(j) is \(product)")if product == 50 {print("It's a bullseye!")break outerLoop}}
}

使用常规的break,只有内层循环会退出,外层循环会从中断的地方继续。

跳过项目

如您所见,break关键字退出循环。但如果您只想跳过当前项目并继续执行下一个项目,则应使用continue。

为了尝试这一点,我们可以编写一个从 1 到 10 的循环,然后使用 Swift 的余数运算符跳过任何奇数:

for i in 1...10 {if i % 2 == 1 {continue}print(i)
}

记住,余数运算符会计算出循环中每个数字可以容纳多少次 2,然后返回剩余的数。因此,如果剩余 1,则表示该数字为奇数,因此我们可以使用它continue来跳过它。

无限循环

while循环通常用于无限循环:循环要么没有结束,要么只在您准备好时结束。iPhone 上的所有应用都使用无限循环,因为它们开始运行,然后不断监视事件,直到您选择退出。

要进行无限循环,只需将其用作true条件。true始终为真,因此循环将永远重复。警告:请确保您有一个退出循环的检查,否则它将永远不会结束。

举个例子,我们将用来while true打印约翰·凯奇的《4’33”》的音乐——如果你不知道的话,它之所以出名是因为它有4分33秒的完全沉默。

我们可以使用 为这首曲子编写“音乐” while true,并设置一个条件,即当我们循环足够多次后退出循环:

var counter = 0while true {print(" ")counter += 1if counter == 273 {break}
}

总结

让我们总结一下:

  • 循环让我们重复代码直到条件为假。
  • 最常见的循环是for,它将循环内的每一项分配给一个临时常量。
  • 如果您不需要for循环提供的临时常量,请使用下划线,这样 Swift 可以跳过该工作。
  • 存在while循环,您可以提供明确的条件来检查。
  • while尽管它们与循环相似,但repeat循环总是运行其循环主体至少一次。
  • 您可以使用退出单个循环break,但如果您有嵌套循环,则需要使用,break后跟您在外循环之前放置的任何标签。
  • 您可以使用 循环跳过项目continue。
  • 无限循环不会结束,除非您要求它们结束,并且使用while true。确保您在某处有一个条件来结束无限循环!

这篇关于IOS Swift 从入门到精通: For 循环, While 循环, 重复循环, 退出循环, 退出多重循环, 跳过项目, 无限循环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084548

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建