美文网首页Swift小课
100 Days of Swift - Day 03: Swif

100 Days of Swift - Day 03: Swif

作者: NieFeng1024 | 来源:发表于2022-12-09 09:50 被阅读0次

03 Day: Operators and Conditions

3.1 算术运算操作符

  1. 操作符 加减乘除 取余

  2. 限定在相同数据类型之间,

  3. Swift 不建议在不同数据类型之间进行运算,精度会丢失,不安全

     let firstScore = 12
     let secondScore = 4
     let total = firstScore + secondScore
     let difference = firstScore - secondScore
     
     let product = firstScore * secondScore
     let divided = firstScore / secondScore
     let remainder = 13 % secondScore
    

3.2 算术操作符重载

  • Swift 允许运算符重载,也允许自定义操作符
  • 例如 + 加法运算
    1. 可用于数字相加
    2. 可用于字符串相加
    3. 可用于字符串数组相加
      • 举个🌰
        // 整数相加
        var score = 95 + 5
        // 字符串相加
        var quote = "Rain" + "Spaniards"
        // 字符串数组相加
        var result = ["Red", "Green"] + ["Blue"]
        
    4. ❌错误示例: 不同数据类型加法操作
      // 字符串加数字
      var result = "Your age is " + 26  
      // 字典加字符串数组
      let result = ["name": "Paul"] + ["Hudson"]    
      
    5. ❌错误示例: 布尔类型不允许加法操作
      let result = false + false
      

3.3 组合赋值操作符

  • Swift 组合赋值运算符
  1. -= 先减再等
  2. += 先加再等
var score = 95
score -= 5        
var quote = "The rain in Spain falls mainly on the "
quote += "Spaniards"

3.4 比较运算符

1) == 等等于
2) != 不等于
3) >= 大于等于
4) <= 小于等于
  • 举个🌰
let firstScore = 6
let secondScore = 4
firstScore == secondScore // false
firstScore != secondScore // true
firstScore < secondScore  // false
firstScore >= secondScore // true
"Taylor" <= "Swift"       // false
  • Swift可以比较各种种相同类型的数据 eg: String / Enum / Int ...

3.5 条件运算符

1) if ==  / >= / <=
2) if else if
3) if else if else
  • 应用场景: 条件运算符配合 if else 关键字 对多个条件进行判断是否执行
if firstCard + secondCard == 2 {        
    print("Aces – lucky!")
} else if firstCard + secondCard == 21 {
    print("Blackjack!")
} else {
    print("Regular cards")
}

3.6 合并运算符

1) &&   // 与
2) ||   // 或
3) if else if else
  • 应用场景: 同一时刻检查多个条件是否满足
if (isOwner == true && isEditingEnabled) || isAdmin == true {
    print("You can delete this post")
 }

3.7 三元运算符

  • let result = condationA ? B : C
  • 应用场景: 一个条件返回两种结果,条件A满足则返回B,否则返回C,和条件语句if else 同理
let firstCard = 11
let secondCard = 10
print(firstCard == secondCard ? "Cards are the same" : "Cards are different")

if firstCard == secondCard {
    print("Cards are the same")
} else {
    print("Cards are different")
}

3.8 Switch语句

  • switch { caseA caseB caseC ... default }
  • default case 等同于条件语句if else if else 中最后一个else
  • fallthrough 穿透当前case 继续执行下一个case
  • 应用场景: 一列条件,每一条都需要执行不同逻辑,和多个条件语句 if else if 同理
switch weather {
case "rain":
    print("Bring an umbrella")
case "snow":
    print("Wrap up warm")
case "sunny":
    print("Wear sunscreen")
    fallthrough
default:
    print("Enjoy your day!")
}

3.9 范围运算符

  • 两个范围运算符 开区间..< 和 闭区间 ...
  • 应用场景: 创建区间常量
1...5 // 1, 2, 3, 4, 5
1..<5 // 1, 2, 3, 4, 

let score = 85

switch score {
case 0..<50:
    print("You failed badly.")
case 50..<85:
    print("You did OK.")
default:
    print("You did great!")
}

let names = ["Piper", "Alex", "Suzanne", "Gloria"]
print(names[0]) // 取数组下标为0 的元素
print(names[1...3]) // 取数组下标为[1,2, 3] 的元素

3.10 小结

1. 算数运算符 ‘+= -=’ 修改变量 
2. 条件语句 if、else和else if 确定运行结果
3. 三元运算符 一个条件可以不同结果
4. 多个条件使用相同类型的值,建议使用switch case
5. ..<和… 用来创建区间常量

声明:本文创作来自hackingwithswift

相关文章

网友评论

    本文标题:100 Days of Swift - Day 03: Swif

    本文链接:https://www.haomeiwen.com/subject/eionfdtx.html