银河网投[网址]www.308877.com-官网首页

您的位置:银河网投 > 游戏破解器 > 控制转移语句

控制转移语句

2019-11-03 21:58

7.4 调整转移语句

垄断转椅语句能够改动程序实践的依次。斯维夫特 提供了两种调控转移语句:

  • continue
  • break
  • fallthrough
  • return

本章介绍了前三种语句,而return并发在第八章函数中。

Continue

continue用于循环中,程序试行到continue时,会回到当前循环的最发轫。有如continue会对前后相继说:“当前的循环已经达成完结,进行下二遍啊”。

注意
for循环中,增量语句依旧会被试行。

上边这段代码从字符串中去除了颇负空格:

let puzzleInput = "great minds think alike"
var puzzleOutput = ""
for character in puzzleInput {
  if character == " " {
    continue
  }
  puzzleOutput += character
}
println(puzzleOutput)

大器晚成经循环当前的字符是空格,就能够进来if执行continue,那时先后会跳过后边的puzzleOutput += character而回到循环的上马。

标签语句

大家得以在循环和switch中嵌套循环和switch,当结构复杂的时候,不常大家想continue外层的循环或许想break某层的switch当时就非常不方便人民群众了。所以 Swift引进了标签机制,来为循环和switch起名,同时continuebreak末端能够利用相应的名字,来实惠的调控造进度序流程。
标签语句是将标签的名字写在行首,前面紧跟一个冒号,之后是言语,以while巡回为例:

LABEL_NAME: while 条件语句 {
  代码区域
}

上面大家重新玩三次蛇形棋。大家要再改一下法则:

  1. 玩耍初叶时,你把多个代表你的塑料小人放在1号格子左边的桌面上,那是0号格子的职位;
  2. 当且仅当您站在25号格子,你才胜利,不然试行前面包车型地铁步调;
  3. 这段日子您掷骰子来博取贰个[1,6]以内的数字;
  4. 你沿着棋盘上数字增大的趋向前行该数字个格子,如若走过该数字的格子,你超过了棋盘范围,那么再次来到第四个步骤。举个例子你未来在0号格子,掷骰子的数字是6,那么就进步6步,停在6号格子上;倘使以后在24号格子,将在重新掷骰子了。
  5. 前几天看看脚下有未有楼梯,若是有,就本着她爬到三番两次的格子;
  6. 再一次施行第2步。

大家用 Swift 来玩这么些游戏:

let finalSquare = 25
var board = Int[](count: finalSquare + 1, repeatedValue: 0)
board[3] = 8
board[6] = 11
board[9] = 9
board[10] = 2
board[14] = -10
board[19] = -11
board[22] = -2
board[24] = -9

var square = 0
var turns = -1

gameLoop: while square != finalSquare {
    ++turns
    var diceRoll = turns % 6 + 1
    switch square + diceRoll {
    case finalSquare:
        // diceRoll will move us to the final square, so the game is over
        break gameLoop
    case let newSquare where newSquare > finalSquare:
        // diceRoll will move us beyond the final square, so roll again
        continue gameLoop
    default:
        // this is a valid move, so find out its effect
        square += diceRoll
        square += board[square]
    }
}
println("You win after (turns + 1) turns")

这段代码中我们综合使用了while循环,switch的值绑定以致where子句。我们把turns设置为-1,在循环开始时进行自增,这样保证continue之后,turns`也会扩大1。可是很糟糕的是,在这里种法规下,大家放置的阶梯会使得你的塑料假人永恒也走不到顶点,她会疲劳在这里条蛇身上。

Fallthrough

当您须求switch行使相通 C 语言的通过性情时,将要用到此关键字了。

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
default:
    description += " an integer."
}
println(description)

其后生可畏例子中,我们用了fallthrough最主要字。大家想出口三种字符串:"The number N is an integer" 或者 "The number N is a prime number, and also is an integer"。假诺那一个数字不是2,3,5,7,11,13,17,19中的二个,那么依据程序的流水生产线,就能够得到第风流倜傥种字符串;要是他是内部的叁个,就能步入switch的率先中状态,该处境会将description变为"The number N is a prime number, and also"。此时程序施行到了fallthrough,他会忽略下一个气象的标准而实行其代码段。在本例中,程序会进去默许情形,在description前面增加" an integer"

注意
使用fallthrough后,switch不会再检验下三个情景的规格,而是径直步入其代码区域举行。通过fallthrough跻身的气象无法带有值绑定;同期已绑定的值在进入的图景代码区域中是无法采纳的。

Break

break语句会直接退出整个调整流。break能够用在switch说话或循环中。

用于switch

Swift 的switch不一致敬意况的代码段为空,不过有的时候大家须求相配有些景况,然则却不施行别的轮代理公司码,那个时候尽管break的发挥特长。
下边包车型地铁事例将不相同款式数字转变到整数类型:

let numberSymbol: Character = "三"  // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "١", "一", "๑":
    possibleIntegerValue = 1
case "2", "٢", "二", "๒":
    possibleIntegerValue = 2
case "3", "٣", "三", "๓":
    possibleIntegerValue = 3
case "4", "٤", "四", "๔":
    possibleIntegerValue = 4
default:
    break
}
if let integerValue = possibleIntegerValue {
    println("The integer value of (numberSymbol) is (integerValue).")
} else {
    println("An integer value could not be found for (numberSymbol).")
}

用来循环中

当程序试行到break的时候,他会退出整个循环,并不是再次回到循环的开首。就象是对前后相继说:“全部循环已经甘休,实施后边的代码吧”。

本文由银河网投发布于游戏破解器,转载请注明出处:控制转移语句

关键词: