swift学习笔记3-4

再牛逼的梦想,也抵不住你傻逼似的坚持!

我跑啊跑啊,为的就是赶上那个被寄予厚望的自己。

三、运算符+表达式

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 忽略本次循环的剩下语句

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。