文档章节

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
码字总数 109721
作品 0
浦东
程序员
私信 提问
项目工程类的流程在ccflow中应用与设计说明书

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

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

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

嗜学如命的小蚂蚁
2015/12/03
46
0
一个被遗忘的ccflow工作流引擎自定义表单开发模式

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

ccflow
2015/01/24
0
0
web工作流管理系统开发之六 表单权限与流程的权限控制

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

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

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

zhywxyy
2017/02/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
1
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
3
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
3
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
2
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部