Swift 基础

Swift 循环控制

2020-07-28  本文已影响0人  Ian_

Fallthrough

首先看一下 C 中的 Switch, 如果在 case 命中的时候, 不使用 break, 会依次走下面的 case, 无论是否匹配, 直到遇到 break, 或者走完整个 switch, 下面代码和输出:

    int a = 10;
    switch (a) {
        case 9:
            printf("%d\n", 9);
            break;
        case 10:
            printf("%d\n", a);
        case 11:
            printf("%d\n", 11);
        case 12:
            printf("%d\n", 12);
        default:
            printf("%s\n", "default");
    }
    printf("%s", "\n");

// print
10
11
12
default

Program ended with exit code: 0

Swift 的 Switch 与 C 的不同的地方在于, 无论是否使用 break, 在命中 case 的时候都会退出, 如果想继续执行 next case, 可以使用 fallthrough, 使用 fallthrough 的效果就和 c case 无 break 一样, 但当 swift 的 next case 没有 fallthrough, 会立刻结束, 如下代码和输出:

let integerToDescribe = 5
var description = "The number \(integerToDescribe) is"
switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
    description += " a prime number, and also"
    fallthrough
case 99 ... 100:
    description += " 0 ... 100"
default:
    description += " an integer."
}
print(description)

// print
The number 5 is a prime number, and also 0 ... 100

多个嵌套的控制

  1. 使用 continue 和 break 指定某个循环来操作, 如果后面没有具体的循环, 则操作当前的循环.
var a = 0
loop1: while a != 5 {
    a += 1
    print("1run")
    loop2: while a != 5 {
        if a != 5 {
            continue loop1
        }
        print("2run")
    }
    print("11run")
}
print(a)

// print
1run
1run
1run
1run
1run
11run
5
  1. 如果循环中包含 switch , break在 switch 中不指定具体的循环, 就会 break case, switch 中的 continue 不受 switch 影响.
var a = 0
loop1: while a != 100 {
    a += 1
    switch a {
    case 12:
        break loop1
    default:
        break
    }
}
print(a)

// print
12
上一篇 下一篇

猜你喜欢

热点阅读