switch的简单使用:

相比 C 和 objective - C 中的 switch 语句,Swift 中的 switch 语句不会默认的掉落到每个 case 的下面进入 另一个 case.相反,第一个匹配的 switch 语句当第一个匹配的 case 一完成, 就完成了它整个的执行。而不需 要一个明确的 break 语句。这使得 switch 语句比在 C 语言中使用更安全、更简单,并避免错误地执行多个 case。

从例子学习:

let anotherCharacter :Character = "a"

switch anotherCharacter {
case "a":
println("a")
case "A":
println("The letter is A") default:
println("NOT letter")
}

通过swift中的playground中可以看到上述代码会输出:"a"

解释一下为什么书"a"字符:在程序中定义一个anotherCharacter常量字符,通过Switch语句中的case进行判断,当与第一个case相遇时发现就是我们想要找得,然后就会执行case中相应的代码块输出"a"字符。

注意:每个case语句至少包含一个可执行语句,否则程序无效

case可以与多个对象进行匹配,之间用逗号隔开:

switch anotherCharacter {
case "b","c","d":
println("输出bcd")
case "a","e","f":
println("输出aef")
default:
println("未找到")
} //程序会输出:输出aef

因为在执行程序时,与第一个case中的三个对象进行比较判断,发现没有我们想要的,于是紧接着执行第二个case并与其中的多个对象进行比较判断。

Switch中的元组使用:

写一个简单的例子:使用一个点坐标(x,y),表示为一个简单的元组型(Int,Int),并在示例后面的图中将其分类

let OriginPoint = (1, 1)
switch OriginPoint{
case (0,0):
println("(0,0) is at the origin")
case (_,0):
println("(\(OriginPoint.0), 0) is on the x-axis")
case (0,_):
println("(0, \(OriginPoint.1)) is on the y-axis")
case (-2...2,-2...2):
println("(\(OriginPoint.0), \(OriginPoint.1)) is inside the box")
default:
println("(\(OriginPoint.0), \(OriginPoint.1)) is outside of the box") }
//输出:"(1, 1) is inside the box"

相应的说明:(_,0)和(0,_)中"_"符号在Swift中代表忽略值得意思;(-2...2,-2...2)中的代表x取值在[-2,2]的区间,y取值在[-2,2]的区间。

Switch在swift中的使用的更多相关文章

  1. Swift中if与switch语句使用一例

    在Swift中相同的条件处理有if和switch两个语句,我们如何取舍呢? 一种情况下我们只在乎x是否在一个范围内,但并不关心x是否穷尽!换句话说不关心在满足范围条件的其他情况下,此时我们可以考虑用i ...

  2. Swift中switch强大的模式匹配

    不少人觉得Swift中switch语句和C或C++,乃至ObjC中的差不多,此言大谬! 让本猫带领大家看一下Swift中switch语句模式匹配的威力. 所谓模式匹配就是利用一定模式(比如couple ...

  3. Swift中的switch 和 do while

    switch后面的()能够省略 OC中的switch假设没有break就会穿透(依次运行),在Swift中不会穿透(可理解默认就有break) OC中入股要在case中定义变量,必要要加上{}确定作用 ...

  4. [翻译]理解Swift中的Optional

    原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...

  5. 使用swift 中的注意,不断完善中

    1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate ...

  6. Swift 中范围和区间如何使用?

    虽然现在swift语言已经发展到了2.0版了,但是相信很多学习iOS开发的童鞋仍对swift语言存在各种各样的疑问,今天小编将为大家详细介绍swift中的范围和区间,下面我们一起来看看吧. Range ...

  7. 记OC迁移至swift中笔记20tips

    写久了OC后来写swift,总感觉写着是swift的皮毛,但是实际上是OC的核心,这里整理了OC迁移至swift中的一些小细节. 1 在当前类中,实例方法调用属性以及方法都可以将self省略掉,而且是 ...

  8. Swift面向对象基础(上)——Swift中的枚举

    Swift中枚举 学习笔记来自<极客学院> import Foundation /**********1*Swift定义枚举的语法格式*************/ /* enum 枚举名 ...

  9. Swift 中的函数(下)

    学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 import Foundation /******** ...

随机推荐

  1. [转]smail语法 详解

    大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(Google Play下载的完整版版 ...

  2. 【65】Mybatis详解

    Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis能够 ...

  3. ViewPager切换动画PageTransformer的使用

    Android从3.0开始添加了属性动画后,诸多难以实现的动画都可以轻松解决了,v4包下的ViewPager控件当然也不例外,相对于非常平庸的默认切换动画,Google官方给我们展示了两个动画例子:D ...

  4. Bookmarkable Pages

      Build a Bookmarkable Edit Page with JDeveloper 11g Purpose In this tutorial, you use Oracle JDevel ...

  5. iOS监听模式系列之NSNotificationCenter的简单使用

    NSNotificationCenter 对于这个没必要多说,就是一个消息通知机制,类似广播.观察者只需要向消息中心注册感兴趣的东西,当有地方发出这个消息的时候,通知中心会发送给注册这个消息的对象.这 ...

  6. C语言在linux内核中do while(0)妙用之法

    为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码: #define db_error(fmt, ...) \ do { \ fpr ...

  7. Android绘图机制(一)——自定义View的基础属性和方法

    Android绘图机制(一)--自定义View的基础属性和方法 自定义View看起来,确实看起来高深莫测,很多Android开发都不是特别在行这一块,这里面的逻辑以及一些绘画都是有一点难的,说一下我目 ...

  8. 提高HBase写性能

    以下为使用hbase一段时间的三个思考,由于在内存充足的情况下hbase能提供比较满意的读性能,因此写性能是思考的重点.希望读者提出不同意见讨论 1 autoflush=false的影响 无论是官方还 ...

  9. 和菜鸟一起学linux总线驱动之i2c死锁问题

    不知不觉中已经有好几个月没有写点东西了,懒了就是懒了,说是忙着想把产品做得更好,都是借口,每天花一点时间来写点东西确实很不错,自己也坚持了很久很久,只不过今年以来,发现提高不是很大,能写的东西好少好少 ...

  10. 关于IOS开发的基本书籍推荐

    1. Sams Teach Yourself iOS 5 Application Development in 24 Hours&lt;img src="https://pic4.z ...