• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > Swift中的条件切换语句switch...case学习教程

Swift中的条件切换语句switch...case学习教程

作者:Bannings 字体:[增加 减小] 来源:互联网 时间:2017-05-28

Bannings 通过本文主要向大家介绍了Swift中的条件切换语句switch...case学习教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

语法
Swift 语言中 switch 语句的语法:
switch expression {
   case expression1  :
      statement(s)
      fallthrough /* 可选 */
   case expression2, expression3  :
      statement(s)
      fallthrough /* 可选 */

   default : /* 可选 */
      statement(s);
}
</div>
注意:在大多数语言中,switch 语句块中,case 要紧跟 break,否则 case 之后的语句会顺序运行,而在 Swift 语言中,默认是不会执行下去的,switch 也会终止。如果你想在 Swift 中让 case 之后的语句会按顺序继续运行,则需要使用 fallthrough 语句。
需要注意的地方有两点:
Switch当然也支持显式的break,通常只有一种情况下你会这么做,那就是当你也不想在default里做任何事情的时候,这个时候你就可以在default里显式地加上一句break。
fallthrough并不是在任何情况下都有效,当你在Switch里使用Value Binding技术的时候,fallthrough就被禁止了。Value Binding在下面会讲到。

支持多种数据类型
在Objective-C里,Switch语句只能支持整形的数据(或者一个字符),但是在Swift里,Switch能支持多种数据类型,包括浮点、布尔、字符串等:
支持浮点:
let float = 1.5 
switch float { 
    case 1.5: 
        "1.5"   //被输出 
    default: 
        "default" 
} 
</div>
支持布尔:
let isSuccess = true 
switch isSuccess { 
    case true: 
        "true"   //被输出 
    default: 
        "default" 
} 
</div>
支持字符串:
let name = "Bannings" 
switch name { 
    case "Bannings": 
        "Bannings"   //被输出 
    default: 
        "default" 
}
</div> 
可以说是史上支持数据类型最多的Switch了。

支持区间运算符
不仅仅是循环结构里可以用区间运算符,在Switch里同样可以用区间运算符:
var i = 15 
switch i { 
    case 0 ... 10: 
        "0~10" 
    case 11 ... 20: 
        "11~20" //被输出 
    default: 
        "default" 
}
</div> 
对某个数值区间进行批量匹配,这样是不是很酷?浮点数也同样支持区间运算符。

支持元组
作为被大大增强的Switch,元组也是被支持的:
let request = (true,"success") 
switch request { 
    case (true, "success"): 
        "success"   //被输出 
    case (false, "failed"): 
        "failed" 
    default: 
        "default" 
}
</div>
使用元组和使用其他数据类型一致,不过元组还有一项特点,对于不想关心的值,可以用下划线_跳过,如:
let (name,  _, age) = ("Bannings" ,true, 22) 
</div>
那么在使用Switch时,同样支持这项特性:
let request = (true,"success") 
switch request { 
    case (_, "success"): 
        "success"   //被输出 
    case (false, _): 
        "failed" 
    default: 
        "default" 
} 
</div>
对于不关心的值跳过,只要满足另一个值就行了。需要注意一点的是,如果元组中的值也是数字类型,那么也是可以用区间运算符的:
let request = (10,"failed") 
switch request { 
    case (_, "success"): 
        "success" 
    case (1 ... 10, _): 
        "1~10"    //被输出 
    default: 
        "default" 
} 
</div>
Value Binding
针对元组,Switch还支持类似于Optional Binding的Value Binding,就是能把元组中的各个值提取出来,然后直接在下面使用:
let request = (0,"success") 
switch request { 
    case (0, let state): 
        state    //被输出:success 
    case (let errorCode, _): 
        "error code is \(errorCode)" 
}  // 涵盖了所有可能的case,不用写default了 
</div>
这样也是可以的:
代码如下:</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28详解Swift编程中的for循环的编写方法
  • 2017-05-28Swift、Objective-C、Cocoa混合编程设置指南
  • 2017-05-28iOS socket网络编程实例详解
  • 2017-05-28Swift心得笔记之字符串
  • 2017-05-28详解Swift编程中的常量和变量
  • 2017-05-28Swift里的值类型与引用类型区别和使用
  • 2017-05-28零基础上手Swift快速入门教程概览
  • 2017-05-28mac git xcrun error active developer path 错误
  • 2017-05-28MyBatis中SqlSession实现增删改查案例
  • 2017-05-28Swift用final关键字来防止重写

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • hibernate 三种状态的转换
    • Swift开发之使用UIRefreshControl实现下拉刷新数据及uirefreshcontrol使用
    • swift实现自定义圆环进度提示效果
    • 详解SimpleDateFormat的线程安全问题与解决方案
    • Swift教程之类与结构详解
    • Swift 变量
    • 快速排序算法在Swift编程中的几种代码实现示例
    • Swift在控件中添加点击手势的方法
    • SSM框架+Plupload实现分块上传大文件示例
    • 分隔List集合,按指定大小,将集合分成多个的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有