昨日用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!
直接看程式碼好了~~(因為當初高中老師也是直接丟程式碼給我們看,連說明都沒有)~~
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 迴圈了!
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 迴圈會以固定數量的變數作為控制條件的重點。
下一篇見寫寫打家打家擺掰。