Control Flow

用 if 和 switch 来做条件语句,并且用for-in,for,while,和do-while做循环,条件和循环的括号是可以不写的,但是body外面的括号是必须写的

 let individualScores = [,,,,]
var teamScore =
for score in individualScores{
if score > {
temScore +=
} else {
tempScore +=
}
}
teamScore

在 if 语句中,条件必须是一个boolean 表达式,意思就是这个代码如果是 if socre { ... }则是错误的,不能够隐式和0比较

可以使用 if 和 let 来锁定变量的值,在变量声明类型的后面加上问号 ? 标记该变量是可选择的

var optionalString: String?="Hello"
optionalString == nil
var optionaLName: String?="John Appleseed"
var greeting = "hello!"
if let name = optionlName {
greeting = "Hello, \(name)"
}

设置optionalName 为nil 看看是什么结果?

如果这个optional value为nil,则这个条件是 false 并且这个代码节点会被跳过,在其他情况下,这个optional value赋值给 let 常量之后,这使得在if结构中的代码可以执行

switch 支持任何类型的数据和各种各样的操作,他们并不局限于integer类型和检测相等,如下:

let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "add some raisins and make ants on a log."
case "cucumber","watercress":
let vegetableComment ="That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
let vegetableComment ="Is it a spicy \(x)?"
default:
let vegetableComment = "Everything tastes good in soup."
}

执行条件相匹配的结构块中的代码后,程序会退出switch语句,不会执行下一个case

你使用for-in语句遍历字典中的项目,给他们提供一个键值:

let interestingNumbers = [

    "Prime":[,,,,,]

    "Fibonacci": [,,,,,]

    "Square": [,,,,]

]

var largest =
for (kind, numbers) in interestingNumbers{
for number in numbers{
if(number > largest)
{
largest = number
}
}
}
largest

用while来循环代码块,直到条件的变化,一个循环的条件可以在最后替换,从而确定少执行一次:

var n =
while n < {
n = n*
}
n var m =
do {
m = m*
}while m <
m

你也可以用..来做一个范围的集合,通过写一个显式的初始化索引,条件和增量,来判断,下面两个都是:

var firstForLoop =
for i in ..{
firstForLoop += i
}
firstForLoop var secondForLoop =
for var i = ; i<; i++{
secondForLoop += i
}
secondForLoop

使用.. 做一个范围

A swift Tour(2) Control Flow的更多相关文章

  1. 【读书笔记】A Swift Tour

    素材:A Swift Tour 推荐下载Playground:Download Playground objc 自己较为熟悉,想熟悉下风头正劲的 swift.就先从官方的入门手册开始撸. 每一小节,我 ...

  2. A swift Tour

    传统的认为,一个新的语言的第一个应用程序都会打印"Hellow,Word",在Swift中,可以只需要一行代码: pringln("Hello, word") ...

  3. 冷市攻略:Listo 教你 25 今天的社会 Swift 语言 - 02 Swift Tour

    import Foundation //******************************************************************************** ...

  4. SSIS的 Data Flow 和 Control Flow

    Control Flow 和 Data Flow,是SSIS Design中主要用到的两个Tab,理解这两个Tab的作用,对设计更高效的package十分重要. 一,Control Flow 在Con ...

  5. Control Flow 如何处理 Error

    在Package的执行过程中,如果在Data Flow中出现Error,那么Data Flow component能够将错误行输出,只需要在组件的ErrorOutput中进行简单地配置,参考<D ...

  6. 关于Control flow

    1.一个package包含一个control flow并且一个或多个data flow. (这个项目叫做 Integration services project,提供了三种不同类型的control  ...

  7. Swift Tour 随笔总结 (3)

    关于Optional的Control Flow if let constantName = someOptional { statements } 如果该Optional为nil,则不进入if,否则执 ...

  8. Swift Tour 随笔总结 (1)

    let Constant var Variable let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Dou ...

  9. Core Java Volume I — 3.8. Control Flow

    3.8. Control FlowJava, like any programming language, supports both conditional statements and loops ...

随机推荐

  1. 处理Selection对象和Range对象——Word VBA中重要的两个对象

    处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...

  2. asp.net 使用 MongoDB 初体验

    首先:驱动 如果asp.net 想使用MongoDB,.net没有自带的链接类.得用第三方或官方的链接类. 当然有很多种驱动,我就不一一介绍了. 今天我就介绍一个我比较常用的驱动-----MongoD ...

  3. ZOJ 3795 Grouping

    大致题意是给n个人和m组关系,每组关系都是两个人s和t,表示s年龄不小于t的年龄,然后让你把这n个人分组,使得任何一个组里面的任意两人都不能直接或间接的得出这两个人的年龄大小关系. 思路:根据给出的关 ...

  4. POJ 2342 (树形DP)

    Anniversary party Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3863   Accepted: 2172 ...

  5. HDU-4515 小Q系列故事——世界上最遥远的距离

    小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  6. [Irving] Ext.Net动态添加GridPanel列绑定Checkbox值失败的解决办法

    var grid = X.GetCmp<GridPanel>(vm.GRID_QUOTATIONS_FEEITEM_RANGE_SHOW); grid.AddColumn(Html.X() ...

  7. bsp板级支持包

    定义 2作用 ▪ 建立让操作系统运行的基本环境  ▪ 完善操作系统运行的环境 3开发流程     1定义 板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部 ...

  8. N个数的数组求N-1个数组合乘积最大的一组

    /* 编程之美题,给定N个数的数组,只能使用乘法,不使用除法,找出N-1个数的乘积最大的一组,有两种方法,方法一:采用两个数组分别保存从左向右 和从又向左的两个乘积值,然后在扫描一次,求出最大乘积,空 ...

  9. Msys下gcc的配置

    打开文件/etc/profile,添加如下路径, C_INCLUDE_PATH=/e/msys/1.0/include export C_INCLUDE_PATH CPLUS_INCLUDE_PATH ...

  10. UVa11584 - Partitioning by Palindromes(区间DP)

    题目大意 给定一个小写字母组成的字符串S,你的任务是划分成尽量少的回文串 题解 方程就是dp[j]=min(dp[i-1]+1)(i<=j,s[i..j]是回文串) 代码: #include&l ...