美文网首页
Swift学习笔记(控制流)

Swift学习笔记(控制流)

作者: tp夕阳武士 | 来源:发表于2018-03-26 14:44 被阅读11次

For-In循环

for-in 可以用来遍历一个集合中的所有元素:

let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
    print("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!

我们还可以用for-in方法来遍历一个字典,在Swift学习笔记(数组/字典/集合)中有笔记,但是有一点需要注意:字典的键值对顺序理论上是无序的,我们讲键值对插入字典中的先后顺讯并不能决定遍历时读到值的顺序.

//for - in  可以使用数字数字范围
for index in 1...5{ //在这里,系统推断 index 为 let Int 类型
   //此处遍历 从 1 到 5 --> 1,2,3,4,5
}

for character in "abcdefg" {//这里character被推断为:let character类型
}

//如果我们不需要使用遍历区间内的元素值时也可以用下划线来代替( _ )
for _ in 1...10 {
    answer *= base
}//着段代码遍历了1到10,但是并没有使用到里面的元素值,所以前面可以直接用 ( _ ) 代替

//如果我们不需要遍历一整个封闭的区间,
//只需要遍历一个:半封闭形式的区间 可以用 ..< 符号来代替
for index in 0..<60{
      print (index)
}//这段代码会输出:0 到 59
//基本上所有的半分比区间都可以用这种形式书写

//有些时候,我们可能不需要遍历一个区间的生活,得到的每一个元素都用来执行时间,例如时钟没5分钟才走一个字
let minuteInterval = 5
let minutes = 60
for tickMark in stride(from: 0, to: minutes, by: minuteInterval) {
    // 每5分钟渲染一个刻度线 (0, 5, 10, 15 ... 45, 50, 55)
}

//可以在闭区间使用 stride(from:through:by:) 起到同样作用:
let hours = 12
let hourInterval = 3
for tickMark in stride(from: 3, through: hours, by: hourInterval) {
    // 每3小时渲染一个刻度线 (3, 6, 9, 12)
}

While循环

While循环会一直运行知道条件变为false,Swift提供两种While循环形式;
While循环从计算一个条件开始。如果条件为true,会重复运行一段语句,直到条件变为false。
下面是 while 循环的一般格式:

while condition {  
    statements
}

repeat - while 形式的循环

repeat {
    statements
} while condition
//先执行一段重复的代码,知道条件为false的时候停止

条件语句IF

//if语句最简单的形式就是只包含一个条件,只有该条件为true时,才执行相关代码:
var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
    print("It's very cold. Consider wearing a scarf.")
}else {
   print("条件不满足的生活执行这句代码")
}
// 输出 "It's very cold. Consider wearing a scarf."

//if - else 的语法还有一种是 else if 用于连接下一个判断条件,用法和OC的基本一致

Switch

1.可以对任意类型进行分支判断,不局限于整型
2.所有的分支至少需要有一条指令,
3.如果case分支里什么都不做可以用break阻止穿透;

func demo(num:String){//num可以是 Int,Double,String
        
        switch num {
        case "10","9": //OC实现这个效果的做法是,把break去掉,它不能通过逗号合并条件
            print("这是9或者10")
        case "11":
            print("这是 11")
            //Swift 中一般不需要使用break来防止穿透
        case "12":
            break;
        default:
            print("以上结果都不是,这是 \(num)")
        }
    }

switch 可以匹配区间

func demo (num:Int) {
      switch num {
      case 0 :
           print ("这是0")
      case 1...5:
           print (" 这个数大于等于1,小于等于5")
      case  6..<10:
           print (" 这个数大于等于6,小于10")
      default:
            print("超出范围")
      }
}

相关文章

网友评论

      本文标题:Swift学习笔记(控制流)

      本文链接:https://www.haomeiwen.com/subject/ckmxcftx.html