美文网首页
Swift-控制流

Swift-控制流

作者: Joker_King | 来源:发表于2016-11-16 16:24 被阅读12次

使用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)

相关文章

  • Swift-控制流

    循环语句 for-in , whileif和循环控制语句早退语句 guard else(选修)退出循环语句 bre...

  • Swift-控制流

    使用if和switch来创建条件,并使用for-in,for,while和repeat-while来创建循环。 条...

  • swift-控制流

    if语句 不需要将正在检查的表达式放到括号内。 所有if语句的主体都要放在大括号内。 判断optional类型中是...

  • Swift-控制流

    Swift提供了多种控制流声明。包括while循环来多次执行一个任务;if,guard和switch声明来根据确定...

  • Swift-控制流for-in

    for-in循环,用来更简单地遍历数组(Array),字典(Dictionary),区间(Range),字符串(S...

  • Swift-控制流(二)

    Swift提供了各种控制流语句。 这些包括while循环来执行多次任务; if,guard和switch语句,以根...

  • swift-控制流5

    前言 Swift提供了多种流程控制结构,包括可以多次执行任务的while循环,基于特定条件选择执行不同代码分支的i...

  • Swift-控制流 if else

  • Swift-控制流While 循环

    while循环会一直运行一段语句直到条件变成false。这类循环适合使用在第一次迭代前,迭代次数未知的情况下。Sw...

  • Swift-控制流(control-Flow)- forIn、

    之前写了一些文章发现都不干,所以之后的文章尽量会写一些干货。有些同学问我,哥们,你的Swift在哪里学。参考文档,...

网友评论

      本文标题:Swift-控制流

      本文链接:https://www.haomeiwen.com/subject/ipsrpttx.html