iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0

While,若不曉得這次的迴圈會跑幾次,就是 While 出場的時候了。

雖然這麼說,但 while 還是能正常的處理像上面 for 使用。

只是 for 條件判斷式裡必須明確地給出起始值與終值,所以若有不能在一開始就明確知道的話,就必須使用 while 了。

不免俗,來個例子吧!

while(true) {
    val random = Math.random() * 100
    val randomLong = Math.round(random)
    if (random > 50) break
    println(randomLong)
}

這個例子中,會不斷的產生 0~99 的變數,直到有一變數大於 50 ,即會終止該迴圈,那在終止前,我們無法得知該迴圈次數,在這種情境之下用 for 就不太適合了!


Do-While,和 while 差不多,但差異是在進行條件判斷前,會先執行一次程式碼的部分,再做條件判斷,判斷為 true 後,再繼續執行。

以同樣的例子來做比較看看!

do{
  val random = Math.random() * 100
  val randomLong = Math.round(random)
  println(randomLong)
} while(randomLong < 50)

看起來程式碼都沒有改變,只是順序變了,那執行起來有什麼差異呢?

do-while
  //10 29 31 39 55

do-while 可以看到最後一個大於 50 ,但還是有印出來,因為程式碼先執行了,之後才做條件判斷才跳出迴圈。

while
  //39 25 8 36 9 12 42

while 的話,就完全看不到大於 50 的數字,因為在取得隨機數字時就會做條件判斷,一大於 50 就會跳出迴圈,不會印出該數字。


上一篇
[Day 6] Kotlin 語法 - 迴圈 ( For )
下一篇
[Day 8] Kotlin 語法 - 類別( Class )與物件( Object)
系列文
Android心得筆記×Kotlin語法初探 不是新手村 是嬰兒村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言