文档章节

3流程控制

阿元
 阿元
发布于 2017/02/10 16:02
字数 551
阅读 3
收藏 0

##3.1 for 循环 ###for - in 循环结构

for loopVariable in startNumber ...endNumber

“...”告诉Swift起始数字和结束数字指定的是范围

 1> var loopCounter : Int = 0
loopCounter: Int = 0
  2> for loopCounter in 1...5{
  3.     print("\(loopCounter)times \(loopCounter * loopCounter)")
  4. }
1times 1
2times 4
3times 9
4times 16
5times 25

###另一种指定范围语法"..<"

  8> for loopCounter in 1..<5 {
  9.     print("\(loopCounter)times \(loopCounter * loopCounter)")
 10. }
1times 1
2times 4
3times 9
4times 16

"..<"比结束数字小1,用作数组索引时比较直观(因为数组索引从0开始)

###老式 for 循环 Swift3.0中去掉 需要stride方法的协助

 13> for i in stride (from:10 ,through: 0 , by: -1) {
 14.     print("\(i)")
 15. }
10
9
8
7
6
5
4
3
2
1
0

reversed反转

 16> for i in (0...10).reversed() {
 17.     print("\(i)")
 18. }
10
9
8
7
6
5
4
3
2
1
0

###简写

 19> var anotherLoopCounter = 3
anotherLoopCounter: Int = 3
 20> anotherLoopCounter += 2
 21> anotherLoopCounter
$R0: Int = 5
 22> anotherLoopCounter -= 3
 23> anotherLoopCounter
$R1: Int = 2
 24> anotherLoopCounter++
error: repl.swift:24:19: error: '++' is unavailable: it has been removed in Swift 3
anotherLoopCounter++
                  ^~
                   += 1

递增++,递减--,swift3.0移除 移除原因参考http://swift.gg/2016/03/30/swift-qa-2016-03-30/

##3.2 if 语句

var trafficLight = "Greed"
if trafficLight != "Greed" {
	print("Stop!")
}else{
	print("Go!")
}

比较运算符 “==” 等于 “!=” 非等于 “>” 大于 “<” 小于 “>=” 大于等于 "<=" 小于等于

比较字符串

let tree1 = "Oak"
let tree2 = "Pecan"
let tree3 = "Maple"
let treeCompare1 = tree1 > tree2
let treeCompare2 = tree2 > tree3

###if ,else if

var treeArray = [tree1, tree2 , tree3]
for tree in treeArray{
	if tree == "Oak"{
		print("Furniture")
	}else if tree == "Pecan"{
		print("Pie")
	}else if tree == "Maple"{
		print("Syrup")
	}
}

##3.3switch 字符串作为判断

treeArray += ["Cherry"]
treeArray += ["apple"]
for tree in treeArray{
	switch tree {
	case "Oak":
		print("Furniture")
	case "Pecan","Cherry":
		print("Pie")
	case "Maple":
		print("Syrup")
	default:
		print("Wood")
	}
}
Furniture
Pie
Syrup
Pie
Wood

一般数字做判断

var position = 7
switch position {
case 1:
	print("\(position)st")
case 2:
	print("\(position)nd")
case 3:
	print("\(position)rd")
case 4...9:
	print("\(position)th")
default:
	print("Not coverd")
}
7th

swift中移除OC中switch的break,判断匹配到的语句后直接跳出

##3.4while循环

var base = 2
var target = 100
var value = 0
while value < target {
	value += base;
}

do-while 更换为repeat-while(第一次执行完,在判断是否继续执行while循环)

repeat{
	value += base
}while value < target

break提前结束循环

var speedLimit = 75
var carSpeed = 0

while (carSpeed < 100){
	carSpeed += 1
	switch carSpeed {
	case 0...30:
		print("low Speed\(carSpeed)")
	case 31...50:
		print("Normal Speed\(carSpeed)")
	case 51...75:
		print("Litter Faset\(carSpeed)")
	default:
		print("Too Fast must Stop")
	}
	//break 提前结束循环
	if(carSpeed > speedLimit){
		break
	}
}

© 著作权归作者所有

共有 人打赏支持
上一篇: 发送短信倒计时
下一篇: 2.使用集合
阿元
粉丝 5
博文 163
码字总数 108363
作品 0
浦东
程序员
私信 提问
项目工程类的流程在ccflow中应用与设计说明书

说明: -------------------------------------- 1, Prj为项目工程所用的一些扩展应用,项目流程也可以称呼为工程流程,是为了建造一个跨期比较长的工程在每个环节上需要流程控制。 2, 项目流程...

ccflow
2011/12/09
0
0
小蚂蚁学习C语言(7)——C语言流程控制之if

其实我感觉只要学过一门编程语言的人都会使用。 流程控制(非常重要) 1,什么流程控制 控制程序的执行顺序 流程控制的重要性 一通百通 C++ java C+ 都是一样的。 等等……总之就是非常的重要...

嗜学如命的小蚂蚁
2015/12/03
46
0
web工作流管理系统开发之六 表单权限与流程的权限控制

在设计工作流系统的时候,常常会碰到这样的情况: 同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。 例如,同一张报销单:员工填写报销单时...

长平狐
2012/10/11
175
0
SylixOS的SD协议栈(SD总线下的SD存储设备)

1.内容简介 SD设备包括SD存储设备和SDIO设备两种。 SD设备一般支持SD总线接口和SPI总线接口两种工作方式,两者的硬件接口不同,如图 1-1所示。 图 1-1 SD硬件接口 本文目前涵盖的内容如下: ...

zhywxyy
2017/02/05
0
0
一个被遗忘的ccflow工作流引擎自定义表单开发模式

定义概述:一个已经做好的表单需要绑定到节点上 , 该文章在驰骋工作流引擎流程引擎设计器中。 自定义表单工作模式:流程控制按钮区域是ccflow来完成,表单区域是放在控制区域下面的框架里,...

ccflow
2015/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

纹理与表面细节添加方法---凹凸映射

中国龙-扬科
11分钟前
0
0
20181115上课截图

小丑鱼00
19分钟前
0
0
初识css自定义属性

这算是一篇两篇文章译文的糅合体,旨在帮助理解css自定义属性。 今天,CSS预处理器是Web开发的标准。 预处理器的一个主要优点是它们使您能够使用变量, 这有助于您避免复制和粘贴代码,并简化...

嫣然丫丫丫
28分钟前
0
0
JAVA基础--session共享的前生今世

session共享的前生今世 Session及cookie基本概念及生命周期 session   当浏览器发起一个新的HTTP请求时,WEB服务端会主动创建一个session.并分配一个sessionID作为服务端识别客户端的一个标...

spinachgit
36分钟前
0
0
Deepin Linux 下把 UC 缓存视频变为 MP4 文件

本文是利用 FFMPEG 的功能实现的。 生成 file.txt文件 因为缓存文件都是数字,且文件夹内还有其他文件,包括 index.* 的文件。 $ ls -1v --hide=file.txt --hide=index* > file.txt 解释 ls...

不避风云
37分钟前
0
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部