AswiftTourControlFlow

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Control Flow

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

1let individualScores = [75,43,103,87,12]2var teamScore =03forscoreinindividualScores{4ifscore >50{5temScore +=36}else{7tempScore +=18}9}

teamScore

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

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

var optionalString: String?="Hello"optionalString==nil

var optionaLName: String?="John Appleseed"var greeting="hello!"iflet name =optionlName {

greeting="Hello, \(name)"}

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

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

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

let vegetable ="red pepper"switchvegetable {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."caselet xwherex.hasSuffix("pepper"):

let vegetableComment="Is it a spicy \(x)?"default:

let vegetableComment="Everything tastes good in soup."}

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

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

let interestingNumbers =["PRime":[2,3,5,7,11,13]"Fibonacci": [1,1,2,3,5,8]"Square": [1,4,9,16,25]

]

var largest=0for(kind, numbers)ininterestingNumbers{fornumberinnumbers{if(number >largest)

{

largest=number

}

}

}

largest

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

var n =2whilen <100{

n= n*2}

n

var m=2do{

m= m*2}whilem <100m

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

var firstForLoop =0foriin0..3{

firstForLoop+=i

}

firstForLoop

var secondForLoop=0forvar i =0; i<3; i++{

secondForLoop+=i

}

secondForLoop

使用.. 做一个范围

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航