1、swift语句中的控制流和其他语言大致相同,使用if和switch作为条件控制。使用 for-in、for、while、do-while作为循环。

2、区别之处:小括号不是必须的,但是主体的大括号还是必需的,,,,

3、在if语句中,条件必须是布尔表达式,这意味着if score{...}是错误的,不能隐含的与0比较

4、可以一起使用if和let来防止值的丢失。这些值是可选的。可选的值包含一个值或者包含一个nil来指定值还存不存在。写一个问号"?"在类型后表示值是可选的。

5、在switch-case语句中,switch可以接收任何类型的变量或语句作为条件,不再限制于字符类型、整型等,在一条语句结束后,不需要再写上break,但是最后的defalut不能省略。switch的每一个case至少有一条语句,不允许后面跟一个空语句。

6、可以在循环中保持一个索引,通过".."来表示索引范围或明确一个初始值、条件、增量。用"..<"表示不算上边界,用"..."表示算上边界

7、在控制流中有一个新的类型元组,它可以同时存放很多的值,可以通过"元组名.索引"来获取其中值,也可以遍历获取。当然也可以通过键或者函数获取。

具体举例如下:

类型后面带一个?代表前面如果是nil就执行后面的部分,如果不是nil,后面就不执行,表示后面的数据是可选的

var name:String? = "Tom"
name == nil //false

在if中使用let temp = name,如果temp是nil,后面不执行,相反则执行

//name = nil
if let temp = name{
println("hello \(temp)") //"hello Tom"
}

传统for循环语句,不需要小括号

//传统for循环
let array = [,,,,]
var sum1 =
for var i = ; i<; i++
{
sum1 += array[i]
}
sum1 //输出结果

高级for循环,不需要小括号,判断时的条件必须是布尔类型,需要是具体的算数逻辑或关系逻辑 如>、<、==

//高级for循环
let Allscore = [,,,,]
var sum =
for eachscore in Allscore{
if eachscore > 50 //使用关系判断的比较方式作为判断条件
{
sum +=
}
else
{
sum +=
}
}
sum //输出结果

采用.代替省略的索引,使用..<表示不包括边界,如果包含边界,使用...

//不包括索引5
for j in ..<{
sum1 += array[j]
}
sum1 //输出结果

swicth后的表达式可以是各种类型

case后面可以根很多种情况

case后面用let x where 进行分类

case后面不能用break

defalut不能省略

var color = "lightgray"
var commment = ""
switch color
{
case "red":
commment = "激情"
case "green","blue":
commment = "忧郁"
case let x where x.hasSuffix("gray"):
commment = "灰色心情-\(x)"
default:
commment = "其他心情"
}
commment //输出结果

新类型元组的使用,可以存放多个值,通过"元组.索引"获取值,也可以遍历获取

//新类型:元组
var tuples = ("Tom",)
tuples. = "Jobs" //获取元组中第一个值
tuples. = 23 //获取元组中第二个值
println(tuples) //元组使用
let dictionary = [
"Prime":[,,,,,],
"Fibonacci": [, , , , , ],
"Square": [, , , , ],
]
var largest = 0
//通过for高级循环遍历元组中的数据
for (kind,numbers) in dictionary{
for number in numbers{
if largest < number{
largest = number
}
}
}
largest //输出最大值

where循环语句,也是不用使用小括号了

//where语句的使用(明显的区别就是不适用()括号了)
//方式一
var num =
while num < {
num = num *
}
num
//方式二
var tempNum =
do{
tempNum = tempNum *
}while tempNum <
tempNum

switch语句拓展:

不存在隐式的贯穿(Fallthrough)
与C语言和Objective-C中的switch语句不同,在 Swift 中,当匹配的case块中的代码执行完毕后,程序会终止switch语句,而不会继续执行下一个case块。这也就是说,不需要在case块中显式地使用break语句。这使得switch语句更安全、更易用,也避免了因忘记写break语句而产生的错误。

多个模式

范围匹配
case块的模式也可以是一个值的范围。下面的例子展示了如何使用范围匹配来输出任意数字对应的自然语言格式:

 
控制转移语句
控制转移语句改变你代码的执行顺序,通过它你可以实现代码的跳转。Swift有四种控制转移语句。 
- continue
- break
- fallthrough
- return(留在函数中介绍)
 
Continue
continue告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体。
 
Break
break语句会立刻结束整个控制流的执行。当你想要更早的结束一个switch代码块或者一个循环体时,你都可以使用break语句。

在Switch代码块中使用Break:
当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。
												




											

swift:入门知识之控制流的更多相关文章

  1. Swift经典知识整理

    1  关于Swift Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全 ...

  2. Swift入门篇-闭包和函数

    今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 ...

  3. Swift入门篇-循环语句

    今天早上一起来所有新闻都是报道荷兰5-1战胜西班牙,我一看没有搞错吧,顿时想都如果中国队vs荷兰队也不至于会输的怎么惨吧,难道是荷兰队开挂了,于是我看了一下昨天比赛的视频直播,还真是新闻报道的那样,顿 ...

  4. Swift入门篇-字符串和字符

    今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本 ...

  5. Swift入门篇-基本类型(2)

    现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是 ...

  6. Swift入门篇-Hello World

    提示:如果您使用手机和平板电脑看到这篇文章,您请在WIFI的环境下阅读,里面有很多图片, 会浪费很多流量. 博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 最近这2天主要 ...

  7. Swift入门学习之一常量,变量和声明

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6059421.html Swift入门学习之一常量,变量和 ...

  8. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  9. Swift入门教程:基本语法大全

    原文:Swift入门教程:基本语法大全       简介:                                                                        ...

随机推荐

  1. java入门第三步之数据库连接

    数据库连接可以说是学习web最基础的部分,也是非常重要的一部分,今天我们就来介绍下数据库的连接为下面学习真正的web打下基础 java中连接数据库一般有两种方式: 1.ODBC——Open Datab ...

  2. Singleton Design Pattern

    The Singleton pattern is one of the simplest design patterns, which restricts the instantiation of a ...

  3. Hibernate Id Generator and Primary Key

    Use automate id by hibernate: If you want the tables' id be created automation. How to do it? When u ...

  4. PHP_Session

    Session有12个函数分别是: 01 session_start:  初始 session 02 session_destroy: 结束 session 03 session_unset: 释放s ...

  5. ppt打不出中文

    1. 安装微软输入法2007就可以解决了 这个是微软的一个bug,在powerpoint 2007里面如果监测到你的注册表里面没有微软拼音输入法2007的话,就不能够打出中文. 2. 如果你不想安装微 ...

  6. C# winform初学者实例

    快递单打印通 下载地址: http://pan.baidu.com/s/1nue5ifn

  7. Markdown简记

    一篇好的博客文档离不开一个优秀的编辑器.借此篇文章介绍一下编写该博客markdown的语法,方便大家写出更好更漂亮的文档.重点是点击左上角的Github链接,有主题源码哦 一篇好的博客文档离不开一个优 ...

  8. WSGI 的简单理解

    WSGI是Web Server Gateway Interface(Web服务器网关接口)的缩写.其位于web应用程序与web服务器之间.python标准库提供的独立WSGI服务器称为wsgiref. ...

  9. javascript 相关小的知识点集合

    本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false ...

  10. Codeforces Round #371 (Div. 2) C. Sonya and Queries 水题

    C. Sonya and Queries 题目连接: http://codeforces.com/contest/714/problem/C Description Today Sonya learn ...