//// main.swift// Swift流程式控制制語句//// Created by Goddog on 15/6/24.// Copyright (c) 2015年 Goddog. All rights reserved.//import Foundation//MARK: - 順序結構//MARK: - 分支結構//MARK: - -if條件陳述式//注意一定要優先處理範圍小的情況 ,下面得到“中年人”var age = 45if age > 60{ println("老年人")}else if age > 40{ println("中年人")}else if age > 20{ println("青年人")}//MARK: - -switch分支語句/** 1.任意一個case可以緊跟多個值,2.任意一個case執行完成之後會終止無需break語句,3.每一個case必須包含一條語句 4.用fallthrough慣穿,即繼續往下走,5.也可以用break立刻結束*/var score = "c"switch score{ case "A", "a": println("優秀") case "B", "b": println("良好") case "C", "c": println("中等") case "D", "d": println("及格") case "F", "f": println("重考") default: println("輸入有誤")}//switch的範圍匹配var myscore = 98switch myscore{ case 90...100: println("優秀") case 80...89: println("良好") case 70...79: println("中等") case 60...69: println("及格") case 0...60: println("不及格") default: break}//switch的元組匹配//其中_是代表匹配所有可能的值var somePoint = (x:1, y:-4) //代表第四象限switch somePoint{ case (0, 0): println("(0, 0)位於原點") case(_, 0): println("(\(somePoint.0), 0)位於x軸上") case(0, _): println("0, \(somePoint.1)位於y軸上") case(0...Int.max , 0...Int.max): println("\(somePoint.0), \(somePoint.1) 位於第一象限") case(Int.min..<0, 0...Int.max): println("\(somePoint.0), \(somePoint.1) 位於第二象限") case(Int.min..<0, Int.min..<0): println("\(somePoint.0), \(somePoint.1) 位於第三象限") case(0...Int.max, Int.min..<0): println("\(somePoint.0), \(somePoint.1) 位於第四象限") default: break}//注意:範圍越小的case塊應該放在最前面//case的值綁定:switch運算式的值綁定到臨時的變數或常量,無需default結束了var hisScore = 404switch hisScore{ case 91...100: println("優秀") case 80...89: println("良好") case 70...79: println("一般") case 60...69: println("及格") case 0..<60: println("掛科") case let scor: println("輸入的\(scor)有誤")}var somesPoint = (x : 1, y : 0)switch somesPoint{case (0, 0): println("(0, 0)位於原點")case (var x, 0): println("位於x軸上的\(x)")case(0,var y): println("位於y軸上的\(y)")case(var x, var y): println("位於其他點\(x) ,\(y)")}//case的where子句var somesPionts = (x : -1, y : 4)switch somesPionts{ case (0, 0): println("(0,0)位於原點") case (var x, 0): println("該點位於x軸上,其x值是:\(x)") case (0, var y): println("該點位於y軸上,其y值是:\(y)") case var (x, y) where x>0 && y>0: println("\(x),\(y)點位於第一象限") case var (x, y) where x<0 && y>0: println("\(x),\(y)位於第二象限") case var (x, y) where x<0 && y<0: println("\(x),\(y)位於第三象限") case var (x, y) where x>0 && y<0: println("\(x),\(y)位於第四象限") default: break}//MARK: -迴圈結構//1.while迴圈var count = 0while count < 10{ println("count值是:\(count)") count++;}println("迴圈完成")//2.do..while迴圈var counts = 1do{ println("counts的值是:\(counts)") counts++}while counts < 10//for迴圈for var count=0; count<10;count++{ println("count:\(count)")}//for迴圈以外的地方使用變數的值var tmp = 0for var i = 0; i < 10; i++{ println("i的值是:\(i)") tmp = i}println("結束迴圈")//for - in迴圈:專門遍曆字串、範圍、序列、集合等包含元素var name = "huxu"for n in name{ println(n)}//如果根據字串長度確定迴圈次數,不要在迴圈體內遍曆字元,用底線_代替常量名for _ in name{ println("1")}println()//變數範圍var max = 5var result = 1for num in 1...max{ result *= num}println("結果是:\(result)")//嵌套迴圈for var i=0;i<5;i++{ for var j=0;j<3;j++ { println("i的值是:\(i),j的值是:\(j)") }}//控制迴圈結構//Swift提供來continue和break來控制迴圈結構,return可以結束整個方法for var i=0;i<10;i++{ println("i的值是:\(i)") if i == 2 { //執行迴圈結束語句 break }}//break不僅可以結束其所在迴圈,還可以直接結束其外層迴圈,在break後加一個標籤//外層迴圈,outer作為標誌符outer: for var i=0;i<5;i++{ //內迴圈 for var j=0;j<3;j++ { println("i的值是:\(i),j的值是:\(j)") if j==1 { //跳出outer標籤所標緻的迴圈 break outer } }}//使用continue忽略本次迴圈剩下的語句for var i=0;i<3;i++{ println("i的值是\(i)") if i==1 { //忽略下面的語句 continue } println("沒有列印哪個呢")}println("continue結束")//continue後可以緊跟一個標籤//用return結束方法