A swift Tour(2) Control Flow
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的更多相关文章
- 【读书笔记】A Swift Tour
素材:A Swift Tour 推荐下载Playground:Download Playground objc 自己较为熟悉,想熟悉下风头正劲的 swift.就先从官方的入门手册开始撸. 每一小节,我 ...
- A swift Tour
传统的认为,一个新的语言的第一个应用程序都会打印"Hellow,Word",在Swift中,可以只需要一行代码: pringln("Hello, word") ...
- 冷市攻略:Listo 教你 25 今天的社会 Swift 语言 - 02 Swift Tour
import Foundation //******************************************************************************** ...
- SSIS的 Data Flow 和 Control Flow
Control Flow 和 Data Flow,是SSIS Design中主要用到的两个Tab,理解这两个Tab的作用,对设计更高效的package十分重要. 一,Control Flow 在Con ...
- Control Flow 如何处理 Error
在Package的执行过程中,如果在Data Flow中出现Error,那么Data Flow component能够将错误行输出,只需要在组件的ErrorOutput中进行简单地配置,参考<D ...
- 关于Control flow
1.一个package包含一个control flow并且一个或多个data flow. (这个项目叫做 Integration services project,提供了三种不同类型的control ...
- Swift Tour 随笔总结 (3)
关于Optional的Control Flow if let constantName = someOptional { statements } 如果该Optional为nil,则不进入if,否则执 ...
- Swift Tour 随笔总结 (1)
let Constant var Variable let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Dou ...
- Core Java Volume I — 3.8. Control Flow
3.8. Control FlowJava, like any programming language, supports both conditional statements and loops ...
随机推荐
- 【转】ubuntu11.10 64bit 环境android编译错误
原文网址:http://blog.csdn.net/lmhgen/article/details/7326083 错误1: 注意:external/protobuf/java/src/main/jav ...
- CDN原理
要了解CDN的实现原理,首先让我们来回顾一下网站传统的访问过程,以便理解其与CDN访问方式之间的差别: 由上图可见,传统的网站访问过程为:1. 用户在浏览器中输入要访问的域名:2. 浏览器向域名解析服 ...
- HTML特殊字符大全
特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 ! ! " " " # # $ $ % % & & & ' ...
- Servlet3.0学习总结(三)——基于Servlet3.0的文件上传
在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileupload组件,在Servlet3.0中提供了对文件上传的原生支持,我们不 ...
- 关于HTTP返回码301、302区别与SEO
301(永久移动)请求的网页已永久移动到新位置.服务器返回此响应时,会自动将请求者转到新位置.您应使用此代码告诉搜索引擎Spider某个网页或网站已永久移动到新位置.建议在URL规范化的时候采用301 ...
- SPOJ3267 D-query 离线+树状数组 在线主席树
分析:这个题,离线的话就是水题,如果强制在线,其实和离线一个思路,然后硬上主席树就行了 离线的代码 #include <iostream> #include <stdio.h> ...
- hunnu 小明的烦恼——找字符串
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 小明的烦恼——找字符串 ...
- testng 注解
testng.xml suite(套件): 由一个或多个测试组成 test(测试): 由一个或多个类组成 class(类): 一个或多个方法组成 @BeforeSuite: 在某个测试套件开始之 ...
- 查看ssh服务开启状态
root@dbaudit-desktop:/etc/init.d# /etc/init.d/ssh status * sshd is running 或者这样检查:root@dbaudit-deskt ...
- Maven详解 之 聚合与继承
说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高, ...