//
//main.swift
//冰凡
//
//Created by lanou on 16/10/20.
//Copyright (c) 2016年lanou. All rights reserved.
//
//swift里面沒有頭文件和實現(xiàn)文件,只有一個.swift文件
//swift里面沒有main的概念,程序從main.swift開始執(zhí)行
//swift每一條執(zhí)行語句可以不用分號結(jié)束,多條語句在同一行的時候才需要用分號區(qū)分
//swift引用其他文件的內(nèi)容直接引用,不用導(dǎo)入頭文件
//print是swift里面的打印函數(shù),效率比NSLog要高;可以不使用占位符,拼接采用\()
//變量常量可選類型控制流
importFoundation
//變量:定義之后允許改變,通過var表示
//常量:定義之后不允許改變,通過let表示,常量定義出來一定要給他賦值,不賦值會出錯。
//swift會根據(jù)初值來對變量進行自動推斷
//明確指明數(shù)據(jù)類型let/var變量名:數(shù)據(jù)類型=初值
letnumber =20
letnumber1 =12.3
varnumber2:Int=20
//number2 = 30.4不允許
//不同數(shù)據(jù)類型之間不能直接運算,必須進行強制轉(zhuǎn)換
letresult:Int=Int(number1) +number2
letresult1:Double=number1+Double(number2)
print("result =\(result)")
//字符character:用雙引號表示,單個字母,指明類型,character
letcha:Character="a"
//字符串:String :雙引號表示,多個字符
letstr ="hellWorld"
//可選類型:如果某一個變量可能為nil(空),那么這個變量就是屬于可選類型,可選類型用?進行表示
//打印可選類型會有optional字符,如果要去掉optional就進行詳細解包!
//var變量名:數(shù)據(jù)類型?=初始值(可以不給初值)
varnumber0:Int? =50
//number0 = nil
letnumber3:Int=20
//可選類型不能直接參與運算,必須進行強制解包之后才可以參加運算,強制解包用!表示
//對可選類型進行強制解包,必須確??蛇x類型的值不是nil,否則對nil強制解包會導(dǎo)致系統(tǒng)奔潰
//unexpectedly found nil
//while unwrapping an Optional value
letsum =number0! +number3
print("\nsum =\(sum)")
println("\nHello\(1234), World!")
//布爾類型
letflag:Bool=true//false
//條件判斷:if
//(1)if后面的小括號可以去掉,大括號不能省略,即使里面只有一行代碼
if(flag){
print("flag is true\n")
}
//(2)if沒有非零即真的概念,只有true和false
letvalue =10
ifvalue>0{
print("value > 0\n")
}
//可選類型的條件判斷
varname:String? ="hello"
//<1>:if-let/var:先判斷可選類型name是否為空,如果不為nil,就將name進行強制解包后的值賦值給temp,然后執(zhí)行代碼段。否則,不執(zhí)行
print("name =\(name)\n")
ifvartemp =name{
temp +="world\n"
print(temp)
}
//if name != nil{
//}
//<2>if-left/var-where是在if-let的基礎(chǔ)上對定義出來的局部變量再做一次判斷,兩個條件都滿足的時候執(zhí)行{}里面的代碼塊
iflettemp =namewheretemp =="hello"{
print("if-let-where:name = hello")
}
//定義一個整形可選值n,如果該整形可選值不為nil的話,使用for循環(huán)打印n遍“你大爺”
varn:Int? =2
iflettemp =n{
forvari =0; i <= temp; i++ {
print("你好")
}
}
//<3>guard(守護):如果可選值不為空的話,就強制解包的值給temp,否則就執(zhí)行{}里面的代碼塊,return一定要寫
/*func demo(){
let count:Int? = 3
guardlet temp = count else {
print("count為nil")
return
}
}
*/
//定義一個整形可選值myValue,如果該值不為nil并且是偶數(shù)的話就用for循環(huán)打印myValue遍helloWorld,否則的話就打印該數(shù)是奇數(shù)
varmyValue:Int? =5
ifvartemp =myValuewheretemp %2==0{
forvari =0; i
print("hello word\n")
}
}else{
print("這是奇數(shù)\n")
}