iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0

上集解答

fun main(){
    var score =readln().toInt()
    if(score<40){
		println("D")
    }
    else if(score<60){
		println("B")
    }
    else if(score<90){
		println("C")
    }
    else{
		println("A")
    }
}

大家都有做對嗎?

可能很多人會用&&限制資料的範圍,不過其實我們可以善加利用if判斷事物的時間順序喔。


迴圈

迴圈也是電腦程式設計中一個不可或缺的東西,想像一下今天要你顯示hello三遍,你會怎麼做?

println("Hello")
println("Hello")
println("Hello")

那如果要五十遍呢?

println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")
println("Hello")

細心的小夥伴肯定發現了,我其實只顯示49次而已,真的太容易出錯了對吧。

所以顯然這樣子不對,我們應該使用更好的工具,而迴圈就是讓我們可以不斷執行重複的程式碼喔。

先來教第一種寫法while迴圈,語法長這樣

while(布林值){

}

使用方法其實跟if一模一樣,只要括號內為true,但是跟if不一樣,他每次執行都會先看是否為true,只要為true就執行裡面的程式碼,然後再重新判斷一次。

比如剛剛說要顯示hello 50次,就可以這樣寫。

var i = 1
while(i<=50){
	println("Hello")
	i+=1
}

再來介紹第二種迴圈寫法,這種其實更適合剛剛的範例,因為程式碼可以更節儉,這個寫法叫做for,長這樣。

for(i in a..b){

}

這一個寫法跟下面這個幾乎一模一樣喔,會讓我們的迴圈中有一個變數 i 可以用(當然也可以不叫i,自己取)

var i = a
while(i<=b){

	i+=1
}

所以今天比如今天我們要輸出N以內的數字我們可以這樣寫

var n = 10
for(i in 0..n){
	println(i)
}

這個寫法的優點是他可以在我們遍歷整數的時候看起來更直覺漂亮,不過有些時候還是while比較好用,至於哪些時候,就有待讀者自己去發掘啦。

另外其實kotlin還有很多種迴圈寫法喔,不過這裡就不再介紹了~

課堂練習~

你知道fizzbuzz嗎?他是一個很有名的迴圈練習程式,我們來試試看吧。

總共輸出N行,如果行數是3的倍數就輸出fizz,5的倍數就輸出buzz,15的倍數就輸出fizzbuzz,如果是以外的

比如16的fizzbuzz就是

1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz
16

輸入

一個正整數代表要N行的fizzbuzz

輸出

輸出N行的fizzbuzz


上一篇
[Day10][語法]判斷
下一篇
[Day12][語法]陣列
系列文
櫛風風的「完全不會寫程式,從零開始的 Kotlin 教學」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言