SWIFT逻辑控制之控制转移
来源:互联网 发布:美国缩表中国楼市知乎 编辑:程序博客网 时间:2024/05/16 12:21
swift 提供了5个关键字 :break 。 continue。 fallthrough。return。throw
break 跳出循环
下面通过一个例子来帮助我们理解break的使用
需求:求x^4 - y^2 = 15*x*y在300以内的一个正整数解
我们可以枚举1~300的数
方法一:
var getanswer = falsegetanswer = falsefor x in 1...300{for y in 1...300{if x*x*x*x - y*y == 15 * x * y {print(x , y)getanswer = truebreak}if getanswer{break}}}打印结果为 4 4
这种方法 通过二判断,代码比较冗余,不易阅读
方法二:
我们可以给整个循环添加一个变量名, 在代码里break
getanswer : for x in 1...300{for y in 1...300{if x*x*x*x - y*y == 15 * x * y {print(x , y)break getanswer}}}打印结果为 4 4
continue 跳出当前循环并执行下一次循环
fallthrough 就和OC的case后面没加break的用法是一样的!
1.加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行
switch age { case 0...10: print(小朋友) fallthrough case 11...20: print(大朋友) case let x: print((x)岁的朋友)} //输出结果:小朋友大朋友</code>
2.加了fallthrough语句后,紧跟的后一个case条件不能定义常量和变量
switch age { case 0...10: print(小朋友) fallthrough //此处报错 case let x: print((x)岁的朋友)}//程序报错:'fallthrough' cannot transfer control to a case label that declares varps:第一个case执行完后(输出“小朋友”)会直接执行下一个case,而下一个case条件里定义了临时变量x,这样就导致直接从上一个case进来的并没有这个变量x,那如果case语句里用到了x,很明显就会出错。swift这么要求安全的一种语言自然是不允许发生这种事情的,所以,fallthrough后一个case条件里不允许定义常量/变量——除了紧跟着的后一个,后面的其他case还是可以定义常量/变量的(如第一个代码例子)
3.执行完fallthrough后直接跳到下一个条件语句,本条件执行语句后面的语句不执行
0 0
- SWIFT逻辑控制之控制转移
- Swift控制转移语句
- Swift控制转移语句
- 猫猫学Swift之if逻辑控制(3)
- SWIFT逻辑控制之循环结构
- SWIFT逻辑控制之where与guard
- swift-控制流程04-控制转移语句
- 8.Swift 中的控制转移语句
- Swift的控制转移语句-- fallthrough语句
- Swift的控制转移语句--continue语句
- Swift控制转移语句—break语句
- 转移控制
- swift之流程控制
- swift之访问控制
- swift之控制转移语句,continue,break,fallthrough,return,带标签的语句
- Swift之控制流程语句
- Swift学习之 访问控制
- 控制转移指令
- 枚举3
- a
- 取字符
- Android edittext的inputType属性
- 回归中的相关系数以及R平方值和Python应用举例
- SWIFT逻辑控制之控制转移
- webmagic学习笔记(4)---webmagic总体架构分析
- Graph Theory
- android保持屏幕常亮
- iOS 随身笔记之tableview 被选中后取消被选中的颜色 以及git客户端的下载
- 深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data
- Android应用使用https
- 企业网站内部链接的形式分析
- UIBarButtonItem的一个分类,用户快速创建一个UIBarButtonItem