- ★ iOS高级:Swift入门精讲③ 01 swift编程-06
- ★ iOS高级:Swift入门精讲③ 01 swift编程-05
- ★学习笔记:《iOS高级:Swift入门精讲①》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
- ★学习笔记:《iOS高级:Swift入门精讲②》第一节 Swif
前言:
本篇为视频学习笔记
Switch
var number = 1 switch number { case 1: print("number is 1") break case 2: print("number is 2") break default: print("number is other") break } // number is 1
跟我们之前学的C语言是差不多的,注意点如下:
★ case 、default后面不能写大括号{}
★ break可以省略,对其贯穿性没有影响,默认可以不用写,默认是不可以贯穿的
★ fallthrough (贯穿),贯穿的话可以加 fallthrough关键字
★ switch必须要保证能处理所有情况如下代码就会报错
原因:switch处理的情况不详细、不完全
number是一个整数,放到switch中判断的是Int类型整数,整数的情况有很多种,可以认为无数多种,它可能是100,也可能是200,-100,-200,所以这个case要处理所有的话,case 1、case2、case3就要把所有整数可能取的值都要写出来,这个才代表处理了所有情况。所以,你没有处理所有情况,有遗漏,所以报错。所以,像这样的我们只能,如果你希望处理所有情况,由于它是一个整数,你只能加default。如下图:
- ★ case 、default后面至少要有一条语句
- ★ 如果不想做任何事,加个break即可
- ★ 如果能保证已处理所有情况,也可以不必使用default
enum Answer { case right, wrong} let answer = Answer.right switch answer { case Answer.right: print("right") case Answer.wrong: print("wrong") }
// 由于编译器已经确定answer是Ansewer类型,因此可以省略Answer
switch answer { case .right: print("right") case .wrong: print("wrong") }
复合条件
★ switch也支持Character、String类型
let string = "Jack" switch string { case "Jack": fallthrough case "Rose": print("Right person") default: break } // Right person
判断string字符串是否与Jack相等,那么怎么比较两个字符串相不相等呢?默认的比较,其实也就是比较里面的每一个字符是不是一样的。如果相等,意味着case是匹配的,再往下看是fallthrough,所以它会直接来到Rose这个位置打印 Right person。也就是说,我们的string无论是取值Jack还是Rose都会执行 print("Right person")这段代码。开发中,也会有这样的需求,希望两个case执行的事情是一样的。那么就可以这样做,加一个fallthrough。类似于C语言:
switch age { case 1: case 2: print("1 2") default: print("other") }
Swift中是不能这样写的,说了case后必须有一条语句
你可以加一个fallthrough,他也是一个语句,如下:
还可以下面这样写:
let character: Character = "a" switch character { case "a","A": print("The letter A") default: print("Not the letter A") } // The letter A
网友评论