swift入门教程系列7-控制流
来源:互联网 发布:英语六级听力软件推荐 编辑:程序博客网 时间:2024/05/22 17:03
控制流
总的来说使用方式和C,C++,Objective C等差不多
这里讲解可能会少一点,大家实际写点代码就会用了,很简单,可以侧重看看switch,swift中的swift功能更多一些
有一点特别要注意的是,swift中的条件表达式的结果一定是Bool类型的
也就是说
var a = 19
if a{
}
这样的表达式是不对的,因为a是Int类型
2、for
swift中 for循环分为for 和for in两种
对于for in
这里的index隐式被声明为常量,不需要提前声明
swift中,每个case语句至少要执行一个局域
所以
case value1:
case value2:
println("")
是会报错的
在swfit中,如果想要匹配多个值,
在swift中,switch可以直接匹配元组,这个十分方便
元组中可以是区间,也可以用_匹配任何值
case (0,0):匹配(0,0)
case (0..3,1)匹配(0,1)(1,1)(2,1)
case (_,1)匹配任何(Int,1)
举个例子
case的分支语句可以通过where增加额外判断
5 continue break fallthrough return
continue,终止循环体中的这次操作,继续下一次操作
swift中,默认在一个case结束后,不管有没有break,都会跳出switch语句,如果想要像其他语言一样,则使用fallthrough关键字
带标签的语句
当我们有多层循环,或者多层switch的时候,如何知道一个continue或者break是终止那一层控制流呢?Swift提供了一种方便的方式:带标签的语句
总的来说使用方式和C,C++,Objective C等差不多
这里讲解可能会少一点,大家实际写点代码就会用了,很简单,可以侧重看看switch,swift中的swift功能更多一些
有一点特别要注意的是,swift中的条件表达式的结果一定是Bool类型的
也就是说
var a = 19
if a{
}
这样的表达式是不对的,因为a是Int类型
1、if
常用的if也就三种
if bool{}if bool{}else{}if bool{}else if{}else{}
2、for
swift中 for循环分为for 和for in两种
对于for in
这里的index隐式被声明为常量,不需要提前声明
for index in 1...10{ println(index)}如果无需index的具体值,可以用下划线代替
for _ in 1...10{ println("hello hwc")}for in 最常用的还是用来遍历数组,字典
var dictionary = [1:"one",2:"two",3:"three"]for (key,value) in dictionary{println("\(key)->\(value)")}当然,也可以用for的条件递增
for var index = 0;index < 10;++index{ println(index)}3、while
while condition{ statements}var i = 0while i < 10{ println(i) i++}do{}while conditionvar i = 0do{ println(i) i++}while i < 10
4 switch
switch temp{case value1:println(value1)case value2:println(value2)defalut:println(default)}swift中的switch语句可以不用break,会自动跳出
swift中,每个case语句至少要执行一个局域
所以
case value1:
case value2:
println("")
是会报错的
在swfit中,如果想要匹配多个值,
switch oenValue{ case value1:println("1") case value2...value4:println("234") default: println("default")}
在swift中,switch可以直接匹配元组,这个十分方便
元组中可以是区间,也可以用_匹配任何值
case (0,0):匹配(0,0)
case (0..3,1)匹配(0,1)(1,1)(2,1)
case (_,1)匹配任何(Int,1)
举个例子
let somePoint = (1, 1)switch somePoint {case (0, 0):println("(0, 0) is at the origin")case (_, 0):println("(\(somePoint.0), 0) is on the x-axis")case (0, _):println("(0, \(somePoint.1)) is on the y-axis")case (-2...2, -2...2):println("(\(somePoint.0), \(somePoint.1)) is inside the box")default:println("(\(somePoint.0), \(somePoint.1)) is outside of the box")}
case的分支语句可以通过where增加额外判断
let somePoint = (1, 1)switch somePoint {case let(x,y) where x == y:println("x is equal to y")default:println("x is not equal to y" )}
5 continue break fallthrough return
continue,终止循环体中的这次操作,继续下一次操作
for index in 1...10{ if index % 2 == 1{continue } println(index)}break,立即结束当前控制流的执行
let x = 10switch x{ case 10:println("right") default: break}fallthrough贯穿,从swift中的一个case贯穿到下一个case
swift中,默认在一个case结束后,不管有没有break,都会跳出switch语句,如果想要像其他语言一样,则使用fallthrough关键字
let x = 0switch x{ case 0:println(0)fallthrough case 1:println(1) case 2:println(2) default: println("defalult")}执行会发现输出0 1
带标签的语句
当我们有多层循环,或者多层switch的时候,如何知道一个continue或者break是终止那一层控制流呢?Swift提供了一种方便的方式:带标签的语句
var x = 1var y = 1firstLoop:while x < 5{secondLoop:while y < 6{ //continue firstLoop or continue secondLoop}}
16 0
- swift入门教程系列7-控制流
- Swift入门教程系列8-枚举
- Swift开发系列之控制流详解
- Swift入门教程系列6-闭包
- Swift入门教程系列5-函数+selector在swift中的用法
- Swift教程翻译系列——控制流之循环
- Swift学习笔记系列——(4)控制流
- Swift傻傻分不清楚系列(七)控制流
- Swift 入门教程
- Swift入门教程
- Swift学习笔记(7)--控制流
- 3 Swift控制流
- Swift 控制流(四)
- Swift控制流
- Swift控制流
- swift,控制流
- [Swift]控制流
- 5.Swift-控制流
- moncler outlet usa-647
- MyEclipse快捷键大全.
- 酷狗笔试题
- 我的代码头文件
- 【高精度乘法模板】AOJ-406 Multiplication
- swift入门教程系列7-控制流
- 第九周项目三(5)——输出星号图
- Dom介绍
- struts2.xml 中result type属性说明
- Online Judge
- SEO
- lamp http://baike.baidu.com/subview/365086/10014223.htm?fr=aladdin
- 第九周项目五填充三
- 黑马程序员-----java基础IO流<三>