持续创造,加速生长!这是我参加「日新计划 6 月更文应战」的第5天,点击检查活动详情。
在本章中,你将学会条件、循环和操控搬运句子等操控流的常见运用方法。
前语
和Apple
官网或许网上共享的教程类文章不同,我将以实际开发角度叙述Swift
言语的一些概念和用法,便利咱们更好地学习和把握Swift言语。
这同时也是对自己学习Swift
言语过程的知识收拾。
如有过错,以你为准。
咱们新建一个PlayGround
文件,命名为SwiftControl
。
条件句子-if句子
if
条件判别句子是Swift
操控流条件判别句子中最为常见的一种类型,当情况是false
或许true
的时分,业务上会做怎么处理,这就需要运用到if
条件判别句子。示例:
// if句子的运用
varmessage = ""
if message.isEmpty {
Text("请输入内容")
.foregroundColor(Color(UIColor.placeholderText))
.padding(15)
}
上述代码中,常出现在TextEditor
多行文本框的场景,因为TextEditor
多行文本框没有供给placeholder
提示文字的修饰符,因而咱们自己需要完成提示文字的交互。
当咱们TextEditor
多行文本框内文字message
为空,即message.isEmpty
为true
,咱们就展现Text("请输入内容")
提示文字。
假如是多条件判别的情况,咱们能够运用if-else、if-else if - else
从句来完成。
咱们以石头剪刀布的游戏为例:
// 规则断定
if leftNumber == rightNumber {
self.winMessage = "平局!"
} else if leftNumber == 1 && rightNumber == 2 {
self.winMessage = "左面赢了!"
} else if leftNumber == 2 && rightNumber == 3 {
self.winMessage = "左面赢了!"
} else if leftNumber == 3 && rightNumber == 1 {
self.winMessage = "左面赢了!"
} else {
self.winMessage = "右边赢了!"
}
上述代码中,咱们完成声明好了两个随机数leftNumber
、rightNumber
。
咱们定义随机数的范围为1、2、3
对应石头、剪刀、布
,假如两者持平,则双方为平局,假如左面是1石头,右边是2剪刀,或许左面1是剪刀,右边是3布,或许左面是3布,右边是1石头,那么都是左面赢了,除此之外的情况便是右边赢。
PS: 石头剪刀布项目的图片部分来源于网络,如有侵权,请联络删去。
石头剪刀布项目的代码和逻辑部分最终解释权归属于本人。
石头剪刀布项目仅作开源共享案例运用。
条件句子-Switch句子
Switch
句子和if
句子很相似,不过运用起来更加简略。假如咱们有若干种情况,且不同情况得出对应的值,这种业务场景下,咱们主张运用Switch
句子。示例:
//Switch句子的运用
enum DragState {
case dragging
case pressing
var isDragging: Bool {
switch self {
case .dragging:
return true
case .pressing:
return false
default:
print("没有点击也没有拖动")
}
}
上述代码中,咱们声明晰一个枚举类DragState
手势拖动的类型,然后咱们判别是否是拖着手势。
假如case
是dragging
拖着手势,则返回isDragging
的值为true
。假如case
的值是pressing
点击手势,则isDragging
的值为false
。假如没有点击也没有拖动,那么咱们运用default
默认分支,print
输出一段信息。
在实际业务中,特别是Banner
轮播图的交互中,常常就有点击、拖着手势混合运用,这时分咱们就能够Switch
句子来完成条件判别的逻辑。
别的,Switch
句子在Swift
的应用和OC
不同,不需要增加break
句子来跳出条件分支,Switch
句子只要匹配到了case
就会自动停止,所以在Swift
言语中,break
句子不是有必要的。
循环句子-For-In句子
在上一章数组的遍历中,咱们运用了List
和ForEach
循环遍历展现了数组中的数据,这儿咱们学习下另一种循环的方法For-In
循环。示例:
//For-In句子的运用
var category= ["后端" , "前端", "Android", "iOS" , "人工智能", "开发工具", "代码人生", "阅览"]
for categoryItem in category{
print("\(categoryItem)")
}
上述代码中,咱们声明晰一个category
类目的变量数组,然后经过For-In
循环的方法遍历一切元素,并输出展现。这儿咱们运用了categoryItem
类目项目的暂时常量,假如在业务的代码顶用不到这个常量,咱们也能够直接用“_
”替代。
和ForEach
循环的方法相似,咱们也能够运用区间操作符作为遍历的目标,示例:
//For-In句子的运用
for index1 in 1...5 { print("\(index1)") } //闭区间
for index2 in 1..<category.count { print("\(index2)") } //半开区间
循环句子-While句子
While
句子更多是做循环判别运用,While
句子会一向循环到满意条件为止不再循环,而比照if
句子,if
是判别一轮内部一切成果后退出。示例:
//While句子的运用
var number1 = 1
var number2 = 10
whilenumber1 <= number2 {
number1+= 1
}
print("number2小于number1")
上述代码中,咱们声明晰2
个数字变量,当number1
小于或等于number2
时,number1
自增,直到number2
小于number1
时,体系输出一段文字。
假如咱们只想判别一次就完毕,不用循环判别,咱们能够运用repeat
函数,示例:
//While句子的运用
repeat{
number1 += 1
} while number1 <= number2
上述代码中,number1
在循环判别中只自增了一次,那么输出成果为1
。
操控搬运句子-continue句子
在大学C言语
课程中,咱们学习过continue
句子,而在Swift
言语中,continue
的逻辑沿用了和其他言语相同
的逻辑,即越过本次循环,持续履行下一个循环。示例:
//continue句子的运用
var number3 = 1
var number4 = 5
for i in number3...number4 {
if i == 2 {
continue
}
print(i)
}
上述代码中,咱们经过For-In
句子,遍历1~10
的一切数字,再经过if
句子判别遍历循环的元素有没有2
,假如有2
,则越过2
,持续循环遍历。
最终的成果会打印输出“1、3、4、5
”。
经过continue
句子,咱们也能够用来过滤
数组中的特定元素,示例:
//continue句子的运用
var category2 = ["后端" , "前端", "Android", "iOS" , "人工智能", "开发工具", "代码人生", "阅览"]
for categoryItem2 incategory2 {
switch categoryItem2{
case "iOS":
continue
default:
print("\(categoryItem2)")
}
}
上述代码中,咱们遍历category2
数组中一切元素,假如数组中的值为“iOS
”,那么就会越过,最后输出的成果是“后端、前端、Android、人工智能、开发工具、代码人生、阅览
”。
操控搬运句子-break句子
break
句子和continue
句子的功能都是跳出循环,但break
句子不同的是,break
句子是直接停止后边的一切循环了,也便是我只要匹配到值,就不往下走了。示例:
//break句子的运用
var category3 = ["后端" , "前端", "Android", "iOS" , "人工智能", "开发工具", "代码人生", "阅览"]
for categoryItem3 in category3 {
switch categoryItem3 {
case "iOS":
break
default:
print("\(categoryItem3)")
}
}
上面的代码中,咱们输出的成果是“后端、前端、Android
”。
以上便是本章的全部内容。
快来着手试试吧!
假如本专栏对你有帮助,不妨点赞、评论、关注~