iT邦幫忙

2021 iThome 鐵人賽

DAY 10
2

昨日用repeat繪製生日蛋糕解答:

fun main() {
    val age = 24
    val layers = 5
    printCakeCandles(age)
    printCakeTop(age)
    printCakeBottom(age, layers)
}

fun printCakeCandles(age: Int) {
    print (" ")
    repeat(age) {
          print(",")
    }
    println() // Print an empty line

    print(" ") // Print the inset of the candles on the cake
    repeat(age) {
        print("|")
    }
    println()
}

fun printCakeTop(age: Int) {
    repeat(age + 2) {
        print("=")
    }
    println()
}

fun printCakeBottom(age: Int, layers: Int) {
    repeat(layers) {
        repeat(age + 2) {
            print("@")
        }
        println()
    }

用age這個Int變數作為其他function的parameter,再去print出蛋糕的形狀,這個時候你可能會想問,工程師講話一定要這麼討厭的中英混雜嗎?

沒錯。這樣才專業。


迴圈

除了昨天說到的repeat語句可以重複的執行,還有很多類似的語句都有類似的功能,但使用上的情境就會不一樣。我跟金城武也很像,但其實名字不一樣,我也沒有日本國籍。

今天就稍微說明一下基本的迴圈語法!GOGO!

for迴圈

直接看程式碼好了~~(因為當初高中老師也是直接丟程式碼給我們看,連說明都沒有)~~

fun printOneToFive(){
    for(i in 1..5){
        print(i)
    }
}

這就是一個會印出1~5的迴圈程式,當然接在 for 後面的括號就是條件,那下面我們再看一下其他條件可以怎麼寫:

fun main(){
    
		//用 .. 遞增印出 0 到 10
    for(i in 0..10){
				println(i)
		}

		//用 until 印出 0 到 9
		for(i in 0 until 10){
				println(i)
		}
    
    //印出 0, 2, 4, 6, 8, 10  
    for(i in 0..10 step 2){
				println(i)
		}

    //用 downTo 遞減印出 10, 8, 6, 4, 2, 0
    for(i in 10 downTo 0 step 2){
        println(i)
		}
}

以上就是 for...in... 的簡單範例。

另外你可能會想說,欸!?那我如果不知道他的範圍在哪裡,怎麼用 for...in... 寫呢?

這時候就要用到 while 迴圈了!

while

fun main(){
    var x : Int = 0
    while (x <= 10){
        println(x)
        x++              //x加一的意思 也可以寫成 x=x+1 或是 x+=1
    }
}

迴圈的條件設定為 x≤10 的時候會執行大括號裡面的程式,直到 x≤10 這個條件不成立就斷掉。

那還有另外一種 do-while:

fun main(){
    var x : Int = 0
    do{                  //先執行do裡面的程式 1 次,再去判斷是否繼續迴圈
        println(x)
        x++              //x加一的意思 也可以寫成 x=x+1 或是 x+=1
    } while (x <= 10)
}

就看使用情境來判斷要用哪種 while 了。

簡單來說:

while 迴圈會以某個條件作為控制條件的重點。

for 迴圈會以固定數量的變數作為控制條件的重點。

下一篇見寫寫打家打家擺掰。


上一篇
DAY9 Kotlin 基礎 Repeat語法
下一篇
DAY11 Kotlin基礎 條件語句
系列文
糟了!是世界奇觀!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
lw90967
iT邦新手 5 級 ‧ 2021-10-08 11:53:26

推推

我要留言

立即登入留言