您的位置:首页 > 移动开发 > Swift

swift语言基础(二)流程控制

2016-01-07 22:48 399 查看
关于流程控制,其实swift语言中的流程控制与大多数语法规则有着差不多的相似之处。以下就是我通过对官网的学习:

代码开源

        for语句

        let individualScores = [75,43,103,87,12]

        var teamScore = 0

        for score in individualScores{

            if score > 50{

                teamScore += 3

            }else{

                teamScore += 1

            }

        }

        print(teamScore)

        

       
对于空值,可以在类型声明后添加“?”,显式标明该类型可以为空


        var optionalString:String? = "hello"

        optionalString = nil

        let defaultColorName = "red"

        let colorNameToUse = optionalString ?? defaultColorName//如果前者为空返回后者,如果前者不为空就返回前者。

        print(colorNameToUse)

        

        let optionalName:String? = "John Appleseed"

        var gretting = "Hello!"

        if let name = optionalName {

            gretting = "Hello,\(name)"//\(常量或者变量名)这样用于插入某个字符串中

        }

        print(gretting)

        

       
for-in对于数据范围/序列/集合等中的每一个元素,都执行一次。


        for index in 1...5{//1...5表示1到5这个范围

            print("\(index) times is \(index * 5)")

        }

        for-condition-increment一直执行,直到特定的条件满足,每一次执行,都增加一个计数。

       
如果不需要序列中的每一个值用“_”来忽略它,只执行循环本身


        let base = 3

        let power = 10

        var answer = 1

        for _ in 1...power {

            answer *= base

            print(answer)

        }

        print("\(base) to the power of \(power) is \(answer)")

        

       
遍历字典


        let interestingNumber = ["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 interestingNumber {

            print("\(kind) is \(numbers)")

        }

        for (_ , numbers) in interestingNumber {

            for number in numbers {

                if number > largest {

                    largest = number

                }

            }

        }

        print(largest)

        

        OC中的循环表达方法

        for var index = 0; index < 3; ++index {

            print("index is \(index)")//如果想要在循环后继续使用index的话,要在循环之前定义好。

        }

        

        //while循环

        let finalSquare = 25

        var board = [Int](count:finalSquare + 1, repeatedValue:0)

        board[03] = +08;board[06] = +11;board[09] = +08;board[10] = +02;board[14] = -10;board[19] = -11;board[22] = -02;board[24] = -08;

        var square = 0

        var diceRoll = 0

        while square < finalSquare {

            if ++diceRoll == 7 { diceRoll = 1}

            square += diceRoll

            if square < board.count {

                square += board[square]

            }

            print(square)

        }

        print(board)

        

        repeat {//这里和C不一样,用的repeat

        square += board[square]

        if ++diceRoll == 7 {diceRoll = 1}

        square += diceRoll

            print(square)

        }while square < finalSquare

        print("Game over")

       
与c语言一样只是条件不用加括号


        

        

       
条件语句


        var temperatureInFahrenherit = 30

        if temperatureInFahrenherit <= 32 {

            print("It's very cold .Consider wearing a scarf")

        }

        

        temperatureInFahrenherit = 40

        if temperatureInFahrenherit <= 32 {

            print("It's very cold. Consider wearing a scarf")

        }else {

            print("It's not that cold .Wear a t-shirt")

        }

        

       
多分支判断与C语言一样只是条件没有括号。


        

        switch语句

        let someCharacter:Character = "e"

        switch someCharacter {

            case "a","e","i","o","u":

            print("\(someCharacter) is vowel")

            case "b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z":

            print("\(someCharacter) is a consonant")

        default:

            print("\(someCharacter) is not a vowel or a consonant")

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift 语言 流程控制