Swift-控制流

使用if和switch来创建条件,并使用for-in,for,while和repeat-while来创建循环。 条件语句或循环变量的圆括号可以选择不写。 函数体周围的大括号是必需的。

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
print(teamScore)

if语句

在if语句中,条件必须是布尔表达式 - 这意味着诸如if score {...}之类的代码是错误,在swift中没有0和1之类的隐式比较。

  • 你可以使用if和let一起创建一个缺省值。 这些值表示为可选。 可选值可能是一个值或是nil。 在值的类型后面写入问号(?)以将该值标记为可选。
var optionalString: String? = "Hello"  //声明了一个可选类型的变量
print(optionalString == nil)  //"false\n"

var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName { //如果可选值为nil,则条件为false,并且大括号中的代码将被跳过。 否则,可选值将被展开,并分配给let之后常量,使得展开的值在代码块中可用。
    greeting = "Hello, \(name)"
}else{//条件不成立
    greeting = "Hello, nil"
}
  • 另一种处理可选值的方法是使用??提供一个默认值。 运算符。 如果缺少可选值,则使用默认值。
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"

switch

switch支持任何类型的数据和各种比较操作 - 不仅限于整数。

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

在case中执行匹配的代码后,程序退出switch语句。 语句不会继续到下一个case,因此没有必要在每个case的代码结束时加上break。

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
        }
    }
}
print(largest)

你可以通过使用.. <使循环的范围保持索引在范围中。
使用.. <创建一个省略其上限值的范围,并使用...创建一个包含这两个值的范围。

var total = 0
for i in 0..<4 {
    total += i
}
print(total)

while先判断在执行

var n = 2
while n < 100 {
    n = n * 2
}
print(n)

repeat-while,先执行条件在判断

var m = 2
repeat {
    m = m * 2
} while m < 100
print(m)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容