循环(Loops)
For条件递增语句
1 for ( var counter = 0; counter < 8; counter++ ) 2 { 3 liftWeights( ) 4 }
语法是这样的:用for
作为循环的开始,告诉Xcode你要声明一个循环了,for后面跟着括号,括号里面声明变量、条件和递增数值。例如:
1 for ( VARIABLE; CONDITION; INCREMENT ) 2 { 3 4 }
括号中的第一个部分是变量,用counter表示,计算已经完成的循环的数量,在平时编写程序时,这里的变量常常命名为counter(英文中counter有计数器的含义)然后设定初始值为零:
1 for ( var counter = 0; CONDITION; INCREMENT ) 2 { 3 4 }
条件后面的一个分号后面是递增值,递增值就是每次循环后变量counter的变化:
1 for ( var counter = 0; counter < 8; counter++ ) 2 { 3 4 }
然而苹果公司提供了简写方式,用两个加号++
表示这个变量加1,例如:
counter++
作用和这个相同:
counter = counter +1
区间(Ranges)
区间Range和整型数组中一个数字到另一个数字差不多,目前有两种区间,一种是闭区间,用三个小点表示,包含小点两边的数字:
1...5 //1,2,3,4,5
另外一种是半闭半开区间,用两个小点加上一个小于号表示,小于号右边的数字不包含在这个区间中:
1..<5 //1,2,3,4
在for-in循环中,可以使用区间来代替数组或者词典:
1 for index in 1...5 2 { 3 println ("The current number is \(index)") 4 } 5 6 //打印结果为: 7 //The current number is 1 8 //The current number is 2 9 //The current number is 3 10 //The current number is 4 11 //The current number is 5
条件表达式
1 if isBirthdayToday == true 2 { 3 singBirthdaySong ( ) 4 }
在上面的这个例子中,条件是isBirthdayToday == true
,两个等号表示比较2个等号之间的数值,如果值相同,则结果为真,如果值不相同,则结果为假。
可选类型(Optionals)
可选值是用来处理那些可能出现空值的变量。在某些情况下,你是无法确保一个变量是不是一定有值。例如,在西班牙语中的一个单词,可能无法直接翻译成英语的一个单词,这样就会出现空值。这种没有值的情况叫做nil。
可选值可以用在任何类型的变量中,在使用时将一个问号跟在类型后面,表示这是可选值:
1 var translatedWord: String?
因为可能为空的变量都必须名称表示,这样能确保所有的非可选值变量都会有值。这种设计模式帮助开发者避免了空值引起的程序崩溃。非可选值变量都必须有值,可选值变量可以没有值。
可选值不能直接使用,在使用之前需要解包(unwrapped)。把使用可选值变量想象成拆开一袋糖果,必须先要把包装撕掉才能吃到糖果。当一个可选值变量解包后,这个变量也可能是空值。这就相当于你拆开一颗糖果,结果发现里面什么也没有。
解包的过程帮助开发者记住去检查然后确保这个变量不是空值,用可选值有2个步骤,第一步,检查是不是为空,一般情况下用if表达式检查:
1 var translatedWord: String? = translate("cat") 2 if translatedWord != nil { 3 //translatedWord has a value 4 } else { 5 //The translatedWord has no value 6 }
一旦核查确实有值后,你必须解包。解包一个可选值非常简单,直接放一个叹号在变量后面即可,例如:
1 var translatedWord: String? = translate("cat") 2 if translatedWord != nil { 3 println(translatedWord!) //gato 4 }
刚刚开始接触可选值的时候会有一些困惑和不习惯,其实你只要记住,一个可能为空的变量必须是可选值,而当可选值为空时就叫做nil。