var a: Int = 5 //定义一个Int型变量
var b: Float = 6
var c: Double = 5.6
var d: Bool = true //布尔值
var e: Bool = false
var f = (6, "hello") //定义一个元组变量
let aa: Int = 5 //定义一个Int型常量
var bb = 5 //自动推导为Int型
var bc = 5.5 //自动推导为Float型
let str = "hello, world" //自动推导为String型
var dd:Int
var sum = bb + Int(bc) //如果不进行强制类型转换则会报错
var sum2 = Double(bb) + bc
let a = 4
if a > 4 {
print("哟, a 大于 10 哦")
} else if a < 5 {
print("哟, a 小于 5 哦")
} else {
print("hello world")
}
let score = 70
//oc 的 switch
switch score {
case 60:
print("hello")
print("爹妈不亲")
case 70:
print("及格了,ok")
case 80:
print("优秀")
default:
print("仍需努力")
}
// switch 判断字符串类型
let score1 = "70"
switch score1 {
case "60":
print("爹妈不亲")
case "70":
print("及格了,ok")
case "80":
print("优秀")
default:
print("仍需努力")
}
// switch 做区间判断
// 区间运算符 0..<5: 相当于数学里面的 [0, 5)
// 区间运算符 0...5: 相当于数学里面的 [0, 5]
let score2 = 80
switch score2 {
case 0..<60:
print("hello")
print("爹妈不亲")
case 60...80:
print("及格了,ok")
case 80...100:
print("优秀")
default:
print("仍需努力")
}
// 绑定:在条件判断语句中。将需要判断的值 x,赋给一个临时的变量/常量 y。这个过程就是将 x 和 y 绑定。 在后面我们可直接使用 y
let x = 50
switch x {
case let y where y < 60: //执行此处
print("hello, \(y)")
print("爹妈不亲")
case let y where y < 80:
print("及格了,ok")
case let y where y < 100:
print("优秀")
default:
print("仍需努力")
}
//oc风格的 for 循环
for var i = 0; i < 10 ; i++ {
//print("I love you")
}
//用区间运算符做循环的时候, i 不需加加 var 和 let
for i in 0..<10 {
print("I love you\(i)")
}
//如果我们不需要用 i 的值,可以用一个 _ 把 i 忽略掉
for _ in 0..<10 {
print("I love you")
}
var a = 5
while a > 0 {
print("好好听课")
a--
}
var b = 5
repeat {
print("====好好听课")
b--
} while b > 0
var a: Int? = 5 //定义变量可选值
let b: Int? //定义常量可选值
var c = a! + 5
使用可选值时,需要注意可选值是否有值,如果使用了没有值得可选值,会使代码出错
使用可选值的三种方法:
// 1.先判断可选值,是否为 nil,不为nil才使用
// 这个方法比较 low,很少用
var str: String? = "hello"
var age: Int? = 10
var str1 = "aa"
if str != nil && age != nil{
if age! > 10 {
var st2 = str! + str1
//print(st2)
}
}
//2 .可选绑定
//主流写法
//可选绑定,就在判断条件语句中,定义一个常量或变量 x,将可选值 y 赋值给这个常量或变量。如果可选值 y 有值,则绑定成功,可以在后面直接使用 x。如果没有值,绑定不成功,做异常处理。
//如果需要对多个值进行可选绑定,可以用 , 分隔开
//如果想修改被绑定的值 x, 需要用 var。修改了 x。y 不会变
//可选绑定还可以接 where 来增加我们的条件判断的功能
if var str = str, let age = age where age > 10{
str = "world"
print(str)
print(str)
} else {
//异常处理
}
//3. guard let/var
//guard let 和 if let 逻辑相同,语法相反,绑定成功的逻辑代码需要写在大括号的外面。
//guard 的大括号里面,需要我们 return
//guard let 可以减少代码的层级
func guardlet() {
guard let str = str else {
return
}
print("========\(str)")
}
guardlet()