iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Mobile Development

雙平台APP小遊戲開發實作! Swift & Kotlin 攜手出擊~系列 第 8

[Day08] swift & kotlin 入門篇!(6) 流程控制-循序,選擇,重複

  • 分享至 

  • xImage
  •  

流程控制

基礎語法過後就是流程控制了
流程控制結束就可以進入快樂的開發階段摟~
流程控制是程式設計中 非常重要的概念
甚至可以說 所有功能 幾乎都是靠流程控制 拼湊出來的

流程控制三大招 - 循序 選擇 重複

swift

// 循序- 執行步驟是一步一步承續下來
print("第一步")
print("第二步")
print("第二步")

// 選擇 if
let a = 10
let b = 15
if a > b {
    print("if a 大 ")
} else {
    print("if b 大 ")
}

// 選擇 switch
switch a {
    case 10:
        print("switch a 是 10")
    case 10...15:// 很多語言的switch是無法做到區間判斷的喔
        print("switch a 是 10 到 15之間的一個數")
    default:
        print("switch a 是 啥?")
}

// 重複
let list = ["10", "11", "12", "13","14", "15"]
for (val)  in list {
    print("list value is \(val) ")
}
for (val)  in 5...10 {
    print("value is \(val) ")
}
let myList =  ["user1": 10, "user2": 20, "user3": 30]
for (ind, val)  in myList{
    print("index is \(ind) value is \(val) ")
}
-------- 控制台輸出 ------------
第一步
第二步
第二步
if b 大 
switch a 是 10
list value is 10 
list value is 11 
list value is 12 
list value is 13 
list value is 14 
list value is 15 
value is 5 
value is 6 
value is 7 
value is 8 
value is 9 
value is 10 
index is user3 value is 30 
index is user1 value is 10 
index is user2 value is 20

Swift 有個比較少見的 Range 類
是在其他語言比較少看到的
5...10 表 5~10 其實蠻直覺又好用的
期待之後實務上的應用

另外 switch case 的區間判斷也蠻特別的
該使用if or switch ???
讓我們後面再找範例說明

kotlin

fun main() {
    // 循序- 執行步驟是一步一步承續下來
    println("第一步")
    println("第二步")
    println("第二步")

    // 選擇 if
    val a = 10
    val b = 15
    if (a > b) {
        println("if a 大 ")
    } else {
        println("if b 大 ")
    }

    // 選擇 when
    when (a) {
        10 -> println("when a 是 10")
        in 10..15 -> println("when a 是 10 到 15之間的一個數") // kotlin range 是.. 而swift用...
        else -> println("when a 是 啥?")
    }

    // 重複
    val list = mutableListOf("10", "11", "12", "13","14", "15")
    for (value  in list) {
        println("只取 value is $value ") 
    }
    for ((ind, value)  in list.withIndex()) {
        println("index is $ind list value is $value ")
    }
    for ((_, value)  in (5..10).withIndex()) {
        println("value is $value ")
    }
    
    val myList =  mutableMapOf("user1" to 10, "user2" to 20, "user3" to 30)
    for ((ind, value)  in myList){
        println("map index is $ind value is $value ")
    }
}
-------- 控制台輸出 ------------
第一步
第二步
第二步
if b 大 
when a 是 10
只取 value is 10 
只取 value is 11 
只取 value is 12 
只取 value is 13 
只取 value is 14 
只取 value is 15 
index is 0 list value is 10 
index is 1 list value is 11 
index is 2 list value is 12 
index is 3 list value is 13 
index is 4 list value is 14 
index is 5 list value is 15 
value is 5 
value is 6 
value is 7 
value is 8 
value is 9 
value is 10 
map index is user1 value is 10 
map index is user2 value is 20 
map index is user3 value is 30 

kotlin在for跑list上需特別注意幾個關鍵字
list.indices 會只取出 index
list.withIndex() 同時取出 index 及 value
而map跑for時 本身就會帶出index與value

差異

swift 有 switch
kotlin 有 when

其他語法上幾乎都相同
明天會是基礎的最後一章 類別與方法
到目前感受上 swift 與 kotlin 在基礎語言上
寫法差異並不大
然我們繼續往下看看吧~。

小碎嘴時間 ヽ(゚´Д`)ノ゚

每次要學習一個新語言或框架
就會聽到各種"過來人"說

學XXX才是正統 不然你根本不知道自己在幹嘛

o(〒﹏〒)o

常常就很想說...
O-(/// ̄皿 ̄)☞ ─═≡☆゜★█▇▆▅▄▃▂_  去去我氣走

真想好好從頭學習呀~
我看我從 基本電學 系統架構 計算機概論 ....
好好學個一輪好了

不不不~~~~嚇死寶寶
是不是該重回大學唸書了....

算了~像我這種半路出家非本科系走偏路的小嫩B
只能靠 "實用路線" 行走江湖 騙吃騙喝 ( ͡ ͡° ͜ ʖ ͡ ͡°)

那些基本功我們在有閒暇時間再努力補補吧......
前陣子很用力嗑了
Clean Code , Clean Coder, Working Effectively with Legacy Code
搞得我頭昏腦脹七葷八素

越念這些書越佩服讀資訊科系的人
學生時期應該大部分沒經歷過真正的團隊開發
要全憑文字與書本來學習那些 "錐心刺骨"的經驗
看得懂!? 認真可以理解!? 這些書在學生時期嗑的下去!!??!??

請收下我的膝蓋 m(__)m


上一篇
[Day07] swift & kotlin 入門篇!(5) 基礎語法-集合物件
下一篇
[Day09] swift & kotlin 入門篇!(7) 方法, 類別, 介面
系列文
雙平台APP小遊戲開發實作! Swift & Kotlin 攜手出擊~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言