Swift学习Day2-----循环和条件语句
一、循环语句
1.for循环
1)For-Condition-Increment条件循环,和c语言中的一样,例如:
for var x = 0;x<=5;x++ {
// 执行5次,x从0到4
}
2)for -in循环
(1)对于数据范围,序列,集合等中的每一个元素,都执行一次,例如:
for i in 1...5{
// 执行5次,i从1到5
}
注意:i只循环中存在,也就是出了{}i就不存在了
(2)如果不需要序列中的每一个值,可以使用_来忽略它,例如:
for _ in 1...5{
// 执行5次,i从1到5
}
(3)遍历数组
let array = [1,2,5,4]
for a in array{
}
(4)遍历字典
let animalLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animal,count) in animalLegs{
print("\(animal)s have \(count) legs")
}
(5)遍历字符串
for character in "jdjajdka".characters{
}
注:包裹条件和循环变量括号可以省略,但是语句体的大括号是必须的
2.while循环
while循环执行一系列代码块,直到某个条件为false为止,长用于循环的次数不确定的情况
1) while循环
var i = 0
while i < 5{
// 执行5次
i++
}
2)repeat-while循环
var i = 0
repeat {
i++
} while i < 5
二、条件语句
注意:
1) 和C语言以及Objective-C不一样,if或者else后面必须带有括号,否则编译器会报错
2) 在if语句中,条件必须是一个布尔表达式——像if name { ... }这样的代码是错误的
可以用下面方式实现:
let name = true
if name{
}
补充:可选值可用于把变量的值赋值nil,例如:
var optionalString:String? = "Hello"
optionalString = nil
var idh :Int? = 123
idh = nil
使用:在类型后面加一个问号
可以使用if和let来处理值缺失,例如:
var optionalName: String? = "John Hello"
//optionalName = nil
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
三、switch语句
说明:
(1)Swift 中的switch,当匹配的 case 分支中的代码执行完毕后,程序会终止switch语句,而不会继续执行下一个 case 分支。这也就是说,不需要在 case 分支中显式地使用break语句。这使得switch语句更安全、更易用,也避免了因忘记写break语句而产生的错误。
(2)支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等
1)匹配一个数值范围
var a = 5
switch a {
case 0...3:
print("a= 0")
case 4...6:
print("a = 1")
default:
print("a = 4")
}
2)匹配元组,_代表着任何值
var a = (5,2)
switch a {
case (1,1):
print("a= 0")
case (_,2):
print("a = 1")
default:
print("a = 4")
}
3)数值绑定
在case匹配的同时,可以将switch语句中的值绑定给一个特定的常量或者变量,以便在case的语句中使用。比如:
var a = (1,2)
switch a{
case (1,let x):
print("x:\(x)") // 可以根据1得到x
case (let y,2):
print("y:\(y)")
default:
print("other")
}
4) 匹配字符
var str1:Character = "A"
switch str1
{
case "A","a":
print("Have A")
default:
print("No A")
}
5)使用where关键词来增加判断的条件
var a = (1,2)
switch a{
case let (x,y) where x > y:
print("x > y")
case let (x,y) where x< y:
print("y > x")
default:
print("other")
}
(3)如果两个分支执行的是相同的代码。可以直接写在一个case里面,用逗号,隔开,例如:
var a = 1
switch a {
case 0,1:
print("a= 0")
default:
print("a = 4")
}
三、控制跳转语句
1) continue
continue语句告诉一个循环停止现在在执行的语句,开始下一次循环
for a in 0...4{
if a == 3{
continue
}
print(a) // 执行4次
}
2)break
break语句将终止整个循环的执行,可以用在循环语句中,也可以用在switch语句中
for a in 0...6{
if a == 3{
break
}
print(a) // 执行3次
}
3) fallthrough
由于Swift中的switch语句不会自动的因为没有break而跳转到下一个case,因此如果需要想C语言中那样,依次执行每个case的时候,就需要用到fallthrough关键词
var s: Int = 2
switch s{
case 1:
print("1")
case 2:
print("2") // 打印
fallthrough case 3:
print("3") // 打印
default :
print("other")
}