zoukankan      html  css  js  c++  java
  • iOS -Swift 3.0 -for(循环语句用法)

      1 //
      2 //  ViewController.swift
      3 //  Swift-循环语句
      4 //
      5 //  Created by luorende on 16/12/08.
      6 //  Copyright © 2016年 luorende. All rights reserved.
      7 //
      8 
      9 import UIKit
     10 
     11 class ViewController: UIViewController {
     12 
     13     override func viewDidLoad() {
     14         super.viewDidLoad()
     15         // Do any additional setup after loading the view, typically from a nib.
     16         
     17         
     18 //        循环语句能够使程序代码重复执行。Swift编程语言支持4种循环构造类型:while、do while、for和for in。for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体。for in是for循环的变形,它是专门为集合遍历而设计的。
     19 
     20 
     21 //        一、 for 的用法
     22 //                一般格式:for 变量;变量<某个值;变量++
     23 //        例子 1
     24         for i in 0 ..< 5 { //从0开始到小于5
     25             print("i=(i)")
     26         }
     27 //        例子 2  Swift3.0会报错,好像说是移除C的风格
     28 //        var j=0 //把变量写在外面
     29 //        for  j=0; j<5 ; j += 1  {
     30 //            print("j=(j)")
     31 //        }
     32 
     33 
     34 
     35 //        二、for in 的用法
     36 //        格式:for 变量或临时变量 in 集合
     37 //        说明:当执行for in语句的时候,集合中所对应的值依次会赋给变量或临时变量
     38 //        例子 1
     39 //        字符串遍历:
     40         var str  = "ABCDEFG"
     41         for temp in str.characters {//遍历字符串里面的字符
     42             print(" temp=(temp) ")
     43         }
     44 
     45 
     46 
     47 
     48 //        例子 2
     49 //        遍历序列
     50         let A = 1...5// ... 三个点表示序列 即 1到5的序列(1,2,3,4,5)也可以说是1-5的合集
     51         for temp in A {
     52           print("temp=(temp)")
     53         }
     54         /**
     55          运行结果:
     56          temp=1
     57          temp=2
     58          temp=3
     59          temp=4
     60          temp=5
     61          */
     62 
     63 
     64 
     65         // for 循环遍历int整形数组的里的个数
     66         let numbers = [1,2,3,4,5,6,7,8,9,10]
     67         for i in 0 ..< numbers.count {
     68              print("Count is: (i)")
     69         }
     70          
     71         
     72         
     73         
     74 //        for-in遍历一个数组所有元素:
     75         let names = ["Anna","Alex","Brian","Jack"]
     76         for name in names {
     77              print("Hello, (name)!")
     78         }
     79         /**
     80          运行结果:
     81          Hello,Anna!
     82          Hello,Alex!
     83          Hello,Brian!
     84          Hello,Jack!
     85          */
     86 
     87         
     88 //        你也可以通过遍历一个字典来访问它的键值对(key-value pairs)。遍历字典时,字典的每项元素会以(key, value)元组的形式返回,你可以在for-in循环中使用显式的常量名称来解读(key, value)元组。下面的例子中,字典的键(key)解读为常量animalName,字典的值会被解读为常量legCount:
     89         let numberOfLegs = ["spider":8,"ant":6,"cat":4]
     90         for(animalName,legCount)in numberOfLegs {
     91             print("(animalName)s have (legCount) legs")
     92         }
     93         /**
     94          运行结果
     95          spiders have 8legs
     96          ants have 6legs
     97          cats have 4legs
     98          */
     99 
    100         
    101         
    102 //        三、while 用法
    103 //        格式:while 布尔值 {}
    104 //        说明:只有当while后面的布尔值为false,才停止while语句,否则一直执行while语句
    105         var i = 0 //只有满足条件(i<5)才跳出while语句
    106         while (i<5) {
    107             print("i=(i)")
    108             i += 1
    109         }
    110         /**
    111          运行结果
    112          i=0
    113          i=1
    114          i=2
    115          i=3
    116          i=4
    117          */
    118         
    119         
    120         
    121 //        四、do {} while 布尔值 do换了个写法,换成了repeat关键字
    122 //        说明: 1.现在执行 do 语句
    123 //              2.然后再执行while语句
    124 //              3.如果while语句后面的布尔值为false就停止do while语句,否则就一直执行do while语句
    125 //        do while循环没有初始化语句,循环次数是不可知的,不管循环条件是否满足,都会先执行一次循环体,然后再判断循环条件。如果条件满足则执行循环体,不满足则停止循环。
    126 
    127         var k=1
    128         repeat {
    129             
    130             print("k=(k)")
    131             k += 1
    132             
    133         } while (k<=5)
    134 //
    135     /**
    136      运行结果:
    137      i=1
    138      i=2
    139      i=3
    140      i=4
    141      i=5
    142      */
    143     
    144     
    145 //    switch 语句
    146 //      Swift里的switch循环语句里面可以省略了break;
    147  
    148 //    例子
    149     let l=1
    150         switch (l) {
    151         case 0: // case后面必须要跟一个变量,当i=0就执行case当前语句下面对应的方法
    152             print("l=(l)")
    153             
    154         case 1,2: // case后面可以跟两个变量,多个变量可以用逗号隔开,当i=1或者2的时候就执行case语句下面对应的方法
    155             print("l==(l)")
    156             
    157         default: // 如果i都不满足一下条件的时候就执行default语句下面对应的方法
    158             print("default")
    159             
    160         }
    161         /**
    162          运行结果:
    163          i==1
    164          */
    165         
    166         
    167         
    168 //        switch 序列匹配
    169         /**
    170          第一种用法:范围匹配
    171          */
    172         let a=75
    173         switch (a) {
    174         case 1...50://case后面跟一个序列,序列是一个集合变量,当i在1到50的范围下就执行case下面对应的方法或语句
    175             print("1...50->a=(a)")
    176         case 50...100://case后面跟一个序列,序列是一个集合变量,当i在50到100的范围下就执行case下面对应的方法或语句
    177             print("50...100->a=(a)")
    178         default://如果i的取值范围都不满足条件,就执行default下面对应的方法或者语句
    179             print("default")
    180         }
    181         /**
    182          运行结果:
    183          50...100->i=75
    184          */
    185         
    186         
    187         
    188         /**
    189          第二种用法:元组匹配
    190          */
    191         
    192         let string = (1,2) // str 是元组变量
    193         switch (string) {
    194         case (0...1,0...1):// 如果元组变量str的范围(0到1,0到1)
    195             print("(0...1,0...1)-->str=(str)")
    196         case (1...2,1...2):// 如果元组变量str的范围(1到2,1到2)
    197             print("(1...2,1...2)-->str=(str)")
    198         default:
    199             print("default")
    200         }
    201         /**
    202          运行结果:
    203          (1...2,1...2)-->str=(1, 2)
    204          */
    205         
    206         
    207         
    208     }
    209     override func didReceiveMemoryWarning() {
    210         super.didReceiveMemoryWarning()
    211         // Dispose of any resources that can be recreated.
    212     }
    213 
    214 
    215 }
  • 相关阅读:
    bzoj2763 [JLOI]飞行路线 分层图最短路
    [模板]分块/可修改莫队 (数颜色种类)
    gcd步数
    洛谷2378 因式分解 字符串
    bzoj1090 字符串折叠
    洛谷1034 NOIP2002 矩形覆盖
    Codeforces#441 Div.2 四*题
    SPFA的小优化
    洛谷1073 NOIP2009 最优贸易
    bzoj2100 [Usaco2010 DEC]Apple Delivery苹果贸易
  • 原文地址:https://www.cnblogs.com/luorende/p/6147853.html
Copyright © 2011-2022 走看看