Swift学习——A Swift Tour 条件语句

Control Flow  (条件语句)

使用 if 或者  switch 写判断语句,使用  for - in , for , while , do - while 写循环语句

新特性: 判断条件的小括号 () 是可以省略的 ,但是 执行内容的中括号 { } 是必须要写的


If 使用

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
teamScore
新特性:在写条件的时候,条件必须是一个Boolean的表达式,也就是说 if score  这么写是错误的,因为不是与0进行比较

可以使用 if 和 let 来锁定变量的值,在变量声明类型的后面加上问号 ? 标记该变量是可选择的(也就是说用问号标记,表示这个变量的值是会改变的)

可以方便的处理可空变量,如果变量为空,那就无法执行后续操作,使用?标记可以为空的变量

var optionalString: String? = "Hello"
optionalString == nil
 
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}

具体的作用官方是这么解释的,如果我在使用optionalName的时候,因为它是变量,如果它的值变为空,那就不会进入if 语句,如果我在给他赋值到常量后optionalName的值改变了,那么我在if 中使用的还是原来的optionalName的值,因为常量的值是不能改变的,所以上面的作用主要就是保证即使我的变量值改变了,我仍然能正常使用它改变前的值


Switch 使用

let vegetable = "red pepper"
switch vegetable {
case "celery":
    let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
    let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
    let vegetableComment = "Is it a spicy \(x)?"
default:
    let vegetableComment = "Everything tastes good in soup."
}

新特性:当执行完满足条件的switch语句后,就会跳出switch,每个case后不需要使用break跳出switch


For - In 使用

使用 for - in 可以遍历字典或者数组

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
largest

While 和 Do - While 使用

var n = 2
while n < 100 {
    n = n * 2
}
n
 
var m = 2
do {
    m = m * 2
} while m < 100
m
他俩的区别就不用细说了,功能都是一样的,do-while至少执行了一次


..  使用

你可能会问,..是什么,哈哈,这也是新特性类似于一个集合吧,使用..定义一个范围,它不包含值的上限,比如 2..5   表示 [ 2,5 ),还有 ... (注意,这是三个点),也表示一个范围,但是他却包含了上限, 3...8 表示 [ 3,8 ]

下面两段代码的功能相同:

var firstForLoop = 0
for i in 0..3 {
    firstForLoop += i
}
firstForLoop
 
var secondForLoop = 0
for var i = 0; i < 3; ++i {
    secondForLoop += 1
}
secondForLoop

两个点和三个点的功能是不一样的,切记


下一节我们说函数和封闭性

你可能感兴趣的:(swift,条件语句)