iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
1

本篇文章大概會討論到下列兩種條件控制

  • If / Else / Else if

  • When Expression

If / Else / Else if

if 只要條件達成就會執行

 
fun main ()
{
var  a = 5
var b = 10 
if (a > b) {
     println("max is  a")
}  
}

// result:
// 不會印出任何東西 , 條件沒達成

第一個條件式達成 本來第二個不會達成 在第一個判斷式執行的程式碼末行 a 減少 7 所以第二個條件也達成了

  
fun main ()
{
var  a = 10
var b = 5 

if (a > b) {

     println("max is  a")
     a = a - 7
     
} 

if ( b > a) {

     println("max is  b")
     
} 
}

// result:
// max is  a
// max is  b

if 條件(a > b)達成就會執行 println("max is a")'

else 排除這個條件(a > b)的情形會執行 println("max is b")

 
fun main ()
{

var  a = 5

var b = 10 
 
if (a > b) {
     println("max is  a")
} else {
     println("max is  b")
}
}
// result:
//max is  b

if 條件1(a > b)達成就會執行 println("max is a")

else if 條件2(a < b)會執行 println("max is b")

else 排除以上這兩個條件(a > b)&&(a < b)的情形會執行 println(" a is equal b")

 
fun main ()
{
var  a = 5

var b = 5    
    
if (a > b) {
     println("max is  a")
}

else if(a < b) {

     println("max  is   b")

}

else {
  
   println(" a is equal  b")
  
}

// result 
// a is equal  b
}

When

when 可以用來當一個變數不同數值下 每種數值會執行甚麼程式碼內容

fun main (){

val x = 6

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // Note the block
        print("x is neither 1 nor 2")
    }
}
}

// result:
//x is neither 1 nor 2

when 可以用來表示多個情形下 每種情形會執行甚麼程式碼內容

 
fun main ()
{
var  a = 5

var b = 5  

when {

 a > b  -> {
     println("max is  a")
}

 a < b  -> {
 
     println("max  is   b")
}

 else -> println(" a is equal  b")

}
 
// result 
// a is equal  b
}
 

如果 a 的值大於 b 代表是 true 的情形 事實為真; 如果a 的值小於 b 不符合 a > b 代表是 false 的情形 事實為假
分別會執行不同的內容


fun main ()
{
var  a = 5

var b = 5  

when(a > b) {

true -> println("max is  a")

false -> println("max isn't  a")
}
 
}
// result:
// max isn't  a


上一篇
[Day 11] Kotlin Returns and Jumps
下一篇
[Day 13 ] Object declarations (單例模式) / Object expressions (匿名內部類)/ Companion Objects
系列文
Android 菜鳥村-開發基礎 30篇32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言