標籤:
再牛逼的夢想,也抵不住你傻逼似的堅持!
我跑啊跑啊,為的就是趕上那個被寄予厚望的自己。
三、運算子+運算式
swift允許重載運算子,比如 “+”你可以重載它
後續會詳細介紹
賦值運算子 pass
算數運算子 大部分 pass,只說特殊的
19/4 結果是4 而不是5 //截斷取整
藉助ANSI C標準庫中的<math.h> 中的數學函數 完成複雜數學運算
import Foundation
var b = pow(3.2,5) //3.2的5次方
var c = sqrt(3.2) //平方根
0~10的隨機數 var d = arc4random() %10
var e = sin(1.57) //1.57當成弧度
- 求負
溢出運算子 ,對溢出資料位元進行截斷,程式更加健壯
&+ ,&-,&*,&/,&%
有符號整數,最高位是符號位,0代表正數,1代表負數。
電腦 以補碼的形式儲存整數,正數的補碼和源碼相同,負數的補碼 = 反碼+1 (按位取反,最高位不變)
位移運算子:
左移N位相當於乘以2的N次方,右移則是除以2的N次方。
範圍運算子:
a...b 包括 a,b邊界。for in會用到
var range = 2...6
for num in range
{
pringtln(num*5)
}
a..<b 遍曆數組的時候用(你懂的,因為從0開始嘛)
let books = ["oc","swift","java","go"]
for index in 0..<books.count
{
println(books[index])
}
比較子:=== 判斷參考型別的變數,引用同一個對象時返回ture了
邏輯運算子:
兩個的 會短路:就是前邊運算式判斷完,後邊就不判斷了,沒有執行的機會,直接得出結果
&& 與 有false則false
& 與 但是 不會短路
三目運算子:
var c =5 ,d = 5
c>d ?println("c大於d"):(c<d?println("c小於d"):println("c等於d"))
nil 合并運算子: ??
a??b 判斷a是否為nil,不為nil,返回a值,為nil,則返回預設b值,要求類型必須一致!
例 let defaultName = "renhairui"
var name:String?= "engineer"
println(name ?? defaultName) // 輸出 engineer
var nameNil :String?
println(nameNil ?? defaultName) // 輸出 renhairui
其實 a ?? b 相當於 a !=nil ?a!:b
四、流程式控制制
分支結構
迴圈結構
if else 要先處理範圍小的情況
var age = 45
if age >60
{
println("老年人")
}
else if age>40{
println("中年人")
}else if age>20{
println("青年人")
}
switch 不會繼續執行下一個case
var score = "c"
switch score
{
case "a","A":
println("優秀")
fallthrough 貫穿
default:
break 直接忽略
}
var score = 87
switch score{
case 91...100:
println("優秀")
case 同理
}
var somePoint = (x:1,y:-4)
switch somPoint
{
case (0,0):
println("原點")
case(_,0):
println("X軸")
case(0,_):
println("Y軸")
case(0...Int.max,0...Int.max):
println("第一象限")
}
case 值綁定
var score= 178
switch score
{
case 91...100:
println("youxiu")
case 0..<60:
println("")
case let grade:
println("輸入的成績\(grade)不合法")
}
var somePoint = (x:2,y:0)
switch somePoint
{
case (0,0):
println()
case(var x,0):
println("位於X軸上,x值為\(x)")
case(0,var y):
println("位於Y軸上,y值為\(y)")
case(x,y):
println("位置為:\(x),\(y)")
}
where給case增加額外的判斷條件
case var(x,y) where x>0 && y>0:
println("\(x),\(y)位於第一象限")
迴圈體:被重複執行的代碼
for 迴圈 可以同時指定多條初始化,也可以是一個包含邏輯運算子的運算式
for var b= 0,s=0,p =0; b<10 && s<4 &&p<10;p++
{
}
return 可以結束整個方法 函數
break 完全結束一個迴圈,跳出迴圈體,無論在那種迴圈。
continue 忽略本次迴圈的剩下語句
swift學習筆記3-4