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. // 循环语句能够使程序代码重复执行。Swift编程语言支持4种循环构造类型:while、do while、for和for in。for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体。for in是for循环的变形,它是专门为集合遍历而设计的。
  18.  
  19. // 一、 for 的用法
  20. // 一般格式:for 变量;变量<某个值;变量++
  21. // 例子 1
  22. for i in ..< { //从0开始到小于5
  23. print("i=\(i)")
  24. }
  25. // 例子 2 Swift3.0会报错,好像说是移除C的风格
  26. // var j=0 //把变量写在外面
  27. // for j=0; j<5 ; j += 1 {
  28. // print("j=\(j)")
  29. // }
  30.  
  31. // 二、for in 的用法
  32. // 格式:for 变量或临时变量 in 集合
  33. // 说明:当执行for in语句的时候,集合中所对应的值依次会赋给变量或临时变量
  34. // 例子 1
  35. // 字符串遍历:
  36. var str = "ABCDEFG"
  37. for temp in str.characters {//遍历字符串里面的字符
  38. print(" temp=\(temp) ")
  39. }
  40.  
  41. // 例子 2
  42. // 遍历序列
  43. let A = ...// ... 三个点表示序列 即 1到5的序列(1,2,3,4,5)也可以说是1-5的合集
  44. for temp in A {
  45. print("temp=\(temp)")
  46. }
  47. /**
  48. 运行结果:
  49. temp=1
  50. temp=2
  51. temp=3
  52. temp=4
  53. temp=5
  54. */
  55.  
  56. // for 循环遍历int整形数组的里的个数
  57. let numbers = [,,,,,,,,,]
  58. for i in ..< numbers.count {
  59. print("Count is: \(i)")
  60. }
  61.  
  62. // for-in遍历一个数组所有元素:
  63. let names = ["Anna","Alex","Brian","Jack"]
  64. for name in names {
  65. print("Hello, \(name)!")
  66. }
  67. /**
  68. 运行结果:
  69. Hello,Anna!
  70. Hello,Alex!
  71. Hello,Brian!
  72. Hello,Jack!
  73. */
  74.  
  75. // 你也可以通过遍历一个字典来访问它的键值对(key-value pairs)。遍历字典时,字典的每项元素会以(key, value)元组的形式返回,你可以在for-in循环中使用显式的常量名称来解读(key, value)元组。下面的例子中,字典的键(key)解读为常量animalName,字典的值会被解读为常量legCount:
  76. let numberOfLegs = ["spider":,"ant":,"cat":]
  77. for(animalName,legCount)in numberOfLegs {
  78. print("\(animalName)s have \(legCount) legs")
  79. }
  80. /**
  81. 运行结果
  82. spiders have 8legs
  83. ants have 6legs
  84. cats have 4legs
  85. */
  86.  
  87. // 三、while 用法
  88. // 格式:while 布尔值 {}
  89. // 说明:只有当while后面的布尔值为false,才停止while语句,否则一直执行while语句
  90. var i = //只有满足条件(i<5)才跳出while语句
  91. while (i<) {
  92. print("i=\(i)")
  93. i +=
  94. }
  95. /**
  96. 运行结果
  97. i=0
  98. i=1
  99. i=2
  100. i=3
  101. i=4
  102. */
  103.  
  104. // 四、do {} while 布尔值 do换了个写法,换成了repeat关键字
  105. // 说明: 1.现在执行 do 语句
  106. // 2.然后再执行while语句
  107. // 3.如果while语句后面的布尔值为false就停止do while语句,否则就一直执行do while语句
  108. // do while循环没有初始化语句,循环次数是不可知的,不管循环条件是否满足,都会先执行一次循环体,然后再判断循环条件。如果条件满足则执行循环体,不满足则停止循环。
  109.  
  110. var k=
  111. repeat {
  112.  
  113. print("k=\(k)")
  114. k +=
  115.  
  116. } while (k<=)
  117. //
  118. /**
  119. 运行结果:
  120. i=1
  121. i=2
  122. i=3
  123. i=4
  124. i=5
  125. */
  126.  
  127. // switch 语句
  128. // Swift里的switch循环语句里面可以省略了break;
  129.  
  130. // 例子
  131. let l=
  132. switch (l) {
  133. case : // case后面必须要跟一个变量,当i=0就执行case当前语句下面对应的方法
  134. print("l=\(l)")
  135.  
  136. case ,: // case后面可以跟两个变量,多个变量可以用逗号隔开,当i=1或者2的时候就执行case语句下面对应的方法
  137. print("l==\(l)")
  138.  
  139. default: // 如果i都不满足一下条件的时候就执行default语句下面对应的方法
  140. print("default")
  141.  
  142. }
  143. /**
  144. 运行结果:
  145. i==1
  146. */
  147.  
  148. // switch 序列匹配
  149. /**
  150. 第一种用法:范围匹配
  151. */
  152. let a=
  153. switch (a) {
  154. case ...://case后面跟一个序列,序列是一个集合变量,当i在1到50的范围下就执行case下面对应的方法或语句
  155. print("1...50->a=\(a)")
  156. case ...://case后面跟一个序列,序列是一个集合变量,当i在50到100的范围下就执行case下面对应的方法或语句
  157. print("50...100->a=\(a)")
  158. default://如果i的取值范围都不满足条件,就执行default下面对应的方法或者语句
  159. print("default")
  160. }
  161. /**
  162. 运行结果:
  163. 50...100->i=75
  164. */
  165.  
  166. /**
  167. 第二种用法:元组匹配
  168. */
  169.  
  170. let string = (,) // str 是元组变量
  171. switch (string) {
  172. case (...,...):// 如果元组变量str的范围(0到1,0到1)
  173. print("(0...1,0...1)-->str=\(str)")
  174. case (...,...):// 如果元组变量str的范围(1到2,1到2)
  175. print("(1...2,1...2)-->str=\(str)")
  176. default:
  177. print("default")
  178. }
  179. /**
  180. 运行结果:
  181. (1...2,1...2)-->str=(1, 2)
  182. */
  183.  
  184. }
  185. override func didReceiveMemoryWarning() {
  186. super.didReceiveMemoryWarning()
  187. // Dispose of any resources that can be recreated.
  188. }
  189.  
  190. }

iOS -Swift 3.0 -for(循环语句用法)的更多相关文章

  1. iOS -Swift 3.0 -String(字符串常规用法)

    // // ViewController.swift // Swift-String // // Created by luorende on 16/9/10. // Copyright © 2016 ...

  2. Swift流程控制之循环语句和判断语句详解

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代 ...

  3. bash 编程中循环语句用法

    1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; t ...

  4. shell脚本中select循环语句用法

    shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...

  5. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  6. swift 2.0 语法 循环

    //: Playground - noun: a place where people can play import UIKit /*: for循环 * 基本用法和OC一致 * 条件表达式必须是bo ...

  7. iOS -Swift 3.0 -UIButton属性大全

    // //  ViewController.swift //  Swift-UIButton // //  Created by luorende on 16/9/9. //  Copyright © ...

  8. iOS -Swift 3.0 -UILabel属性大全

    昨天研究了一下苹果近两年新出的Swift语言,感觉学起来并不是很吃力,毕竟自己有过Objective-C的语言功底,所以各方面的属性控件还是一眼就可以认出的,只是Swift的写法与Objective- ...

  9. Swift 2.0 单例的用法

    单例我们项目中是很常用的,今天刚学了在swift中怎么写单例和调用单例.下面我们简单的介绍一下.我们先看看Swift单例的写法: import UIKit class Shareinstance: N ...

随机推荐

  1. 安卓更新sdk的代理

     mirrors.neusoft.edu.cn80    

  2. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...

  3. Linux 第05天

    Linux 第05天 1.连接到Internet 1.1 配置网络信息 dmesg命令————查看网卡信息 dmesg | grep -i net ifconfig命令————查看IP.网关等相关信息 ...

  4. react native中对props和state的理解

    最近使用react native这个新的技术做完一个项目,所以赶紧写个博客巩固一下. 今天我想说的是props和state,当然这是我个人的理解,如果有什么不对的地方,望指正. 首先我先说说props ...

  5. 关于vector的内存释放问题

    以前一直想当然的以为vector 的clear()函数会保证释放vector的内存,今天网上一查资料发现完全不是我想象的那样子. 比如有如下代码: tempObject obj1; tempObjec ...

  6. 使用代理和block写一个alertView

    代理: MyAlertView.h: @property (nonatomic,assign)id delegate; @protocol MyAlertViewDelegate <NSObje ...

  7. jQuery插件 -- 动态事件绑定插件jquery.livequery.js

    http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...

  8. 【转】如何提高意志力&如何坚持每天学习

    第一篇如何提高意志力 有一种品质可以使一个人在碌碌无为的平庸之辈中脱颖而出,这个品质不是天资,不是教育,也不是智商,而是自律.有了自律,一切皆有可能,无,则连最简单的目标都显得遥不可及.–西奥多·罗斯 ...

  9. 【NOI2016】优秀的拆分 题解(95分)

    题目大意: 求一个字符串中形如AABB的子串个数. 思路: 用哈希做到O(1)判断字符串是否相同,O($n^2$)预处理,ans[i]为开头位置为i的形如AA的子串个数.再用O($n^2$)枚举出AA ...

  10. myeclipse2014

    myeclipse 2014-GA offline  迅雷下载  http://downloads.myeclipseide.com/downloads/products/eworkbench/201 ...