A swift Tour(2) Control Flow

來源:互聯網
上載者:User

Control Flow

用 if 和 switch 來做條件陳述式,並且用for-in,for,while,和do-while做迴圈,條件和迴圈的括弧是可以不寫的,但是body外面的括弧是必須寫的

1 let individualScores = [75,43,103,87,12]2 var teamScore = 03 for score in individualScores{4     if score > 50{5         temScore +=36     } else {7         tempScore +=18     }9 }
teamScore

在 if 語句中,條件必須是一個boolean 運算式,意思就是這個代碼如果是 if socre { ... }則是錯誤的,不能夠隱式和0比較

可以使用 if 和 let 來鎖定變數的值,在變數宣告類型的後面加上問號 ? 標記該變數是可選擇的

var optionalString: String?="Hello"optionalString == nil var optionaLName: String?="John Appleseed"var greeting = "hello!"if let name = optionlName {   greeting = "Hello, \(name)"}

設定optionalName 為nil 看看是什麼結果?

如果這個optional value為nil,則這個條件是 false 並且這個代碼節點會被跳過,在其他情況下,這個optional value賦值給 let 常量之後,這使得在if結構中的代碼可以執行

switch 支援任何類型的資料和各種各樣的操作,他們並不局限於integer類型和檢測相等,如下:

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

執行條件相匹配的結構塊中的代碼後,程式會退出switch語句,不會執行下一個case

你使用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 = 0for (kind, numbers) in interestingNumbers{   for number in numbers{      if(number > largest)      {          largest = number      }   }}
largest

用while來迴圈代碼塊,直到條件的變化,一個迴圈的條件可以在最後替換,從而確定少執行一次:

var n = 2while n < 100{    n = n*2}nvar m = 2do {  m = m*2}while m <100m

你也可以用..來做一個範圍的集合,通過寫一個顯式的初始化索引,條件和增量,來判斷,下面兩個都是:

var firstForLoop = 0for i in 0..3{   firstForLoop += i}firstForLoopvar secondForLoop = 0for var i = 0; i<3; i++{   secondForLoop += i}secondForLoop

使用.. 做一個範圍

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.