DAY10 Kotlin基础 回圈

昨日用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 回圈会以固定数量的变数作为控制条件的重点。

下一篇见写写打家打家摆掰。


<<:  [ Day 10 ] setState() 的用法

>>:  Day10韩国街头必吃小吃-韩式起士辣炒年糕

Microkernel

Mircokernel (微核心) 是作业系统核心架构的一种,其设计理念是尽可能的精简作业系统核心的...

[05] [Flask 快速上手笔记] 04. HTTP 方法x静态文件x渲染模板

HTTP 方法 在预设情况下 Flask 路由的 HTTP 方法只允许 GET 可以透过route(...

[Cmoney 菁英软件工程师战斗营] IOS APP 菜鸟开发笔记(3)

前言 这两天主要在研究AR套件及Google maps地图套件的定位和标记功能。AR部分原本我是使用...

5.unity图片分割(Slice Sprite)、tile绘制技巧

今天的主题有两个 一、unity图片分割(Slice Sprite) 目标:把一张素材切成很多小素材...

第50天~

这个得上一篇:https://ithelp.ithome.com.tw/articles/10258...