首页 > 代码库 > iOS -Swift 3.0 -for(循环语句用法)

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 }

 

iOS -Swift 3.0 -for(循环语句用法)