條件式可以說是程式重要的能力,也是判斷作業流程細心程度的地方。
條件式 (Condition) ,顧名思義,只有符合條件才做事。
身為一個好士兵,就要執行自家長官的命令。如果是來自敵方隊伍、屬下、路人的命令,就可以快樂的無視他們。
關鍵程式碼大概就會是這樣:
if (發令者 == 自家長官) {執行命令} else {無視}
緊跟著 if 的括號裡的內容就是執行命令的條件, else 就是表示除此之外的其它情形,所以也就不用另外描述的括號了。
== 在 Kotlin 裡就是請程式判斷雙方是否等價,判斷不等則是 != ,判斷大小的符號和小學數學課的一樣,就不多解釋: > 、 >= 、 < 、 <= 。
而更深刻的比對是否同一對象,就再多一個等號, === 和 !== 。就像你錢包裡的五元和我錢包裡的五元雖然是等價的,但其實不是同一枚五元硬幣。
我們要注意的就是,有哪些條件要獨立出來,條件成真時又要做些什麼事。
當有多個條件並行時,可以用 else if ,程式會依序判斷,當不滿足 if 時,才去看 else if 的條件。
if (發令者 == 自家長官) {執行命令}
else if (發令者 == 敵方隊伍) {無間道}
else if (發令者 == 可愛的屬下) {調教}
else {無視}
因為是用同一變數去做比對,有更簡便的寫法:
when (發令者){
自家長官 -> {執行命令}
敵方隊伍 -> {無間道}
可愛的屬下 -> {調教}
else - > {無視}
}
比較複雜的條件,就要用上高中數學課的邏輯, && 就是交集條件,|| 就是聯集條件。不喜歡數學的人也沒問題,就想成前者是我都要,後者是有就好。
比如說指揮官希望部隊人數在 20 人以上 30 人以下,可以用:
if (人數 >= 20 && 人數 <= 30) {人數剛好}
或是用更簡便的範圍 (Range) 描述 「介於」這個概念。
if (人數 in 20..30) {人數剛好}
如果同一個條件要在多處引用,也可以選擇儲存判斷後的結果,放在 Boolean 這個變數型態。
val 人數符合規定 : Boolean = 人數 in 20..30
if (人數符合規定) {人數剛好}