if-else
- if后面的条件可以省略小括号
- if条件后面的大括号不可以省略
- if后面的条件只能是Bool类型
-------------------------------------------------------------------------------------------------------------------------------
while
- repeat-while相当于C语言中的do-while
- 这里不用num--,是因为从Swift3开始,去除了自增(++)、自减(--)运算符
-------------------------------------------------------------------------------------------------------------------------------
for
- 闭区间运算符:a...b, a <= 取值 <= b
- 也可以用一个常量来表示区间
- 也可以用两个常量(或变量)来表示区间
- i默认是let,有需要时可以声明为var
- 不用i的时候,可以用_省略,否则会报警告
- 半开区间运算符:a..<b, a <= 取值 < b
- for 区间运算符用在数组上
- 单侧区间:让区间朝一个方向尽可能的远
三个数组区间表示2到无穷,负无穷到2,负无穷到小于2
range表示负无穷到5:
区间类型
- 定义整型区间类型
- 定义字符串型区间类型(双引号例如"a"默认类型是字符串类型,只有加上Characte才是字符类型)
- 定义字符型区间类型("\0"..."~"表示0~127)
- 带间隔的区间值
-------------------------------------------------------------------------------------------------------------------------------
switch
- case, default后面不能写大括号{}
- 默认可以不写break,并不会贯穿到后面的条件
- 使用fallthrough可以实现贯穿效果
可以看到在case 1加了fallthrough后,就回贯穿到case 2同时输出case 2的结果,但由于case 2没有写fallthrough,所以不会贯穿到default,不会输出default的结果
- switch注意点
- switch必须保证能处理所有情况
2. case, default后面至少有一条语句
3. 如果不想做任何事,加个break即可
4. 如果能保证已处理所有情况,也可以不必使用default
- 复合条件
也就是case的条件可以有多个(类似于使用fallthrough),同时switch也支持Character,String类型
- 区间匹配,元组匹配
(_, 0)表示左边可以是任意值,右边是0的元祖
可以使用下划线_忽略某个值
关于case的匹配问题,属于模式匹配(patter Matching) 的范畴
- 值绑定
下面的代码表示匹配到右边为0的元祖,并将左边的值赋值符合条件的case里
最后的输出为:on the x-axis with an x value of 2
必要时let也可以改为var
- where
这里主要是把point(1, 1)传给(x, y)然后通过where判断关于xy的条件是否成立, 最后的结果为 on the line x == -y
这里是将所欲大于0的num相加,结果为60
-------------------------------------------------------------------------------------------------------------------------------
标签语句
通过标签语句,我们可以实现从内部的for循环直接退出最外层for循环