kotlin入門 20 【 ループ処理② 】 for応用

https://paiza.io/ja ← サイトを開いてください。

今回はfor応用を学習したいと思います。

以前学んだifと組み合わせると、ループをコントロール出来ます。

forとif

【 サンプル 】
fun main() {
    for(i in 1..5){
       println("勇者は${ i }回目の攻撃をした!") 
    }
}

【 修正後 】
fun main() {
    for(i in 1..5){
        if( i == 4 ){
            println( "勇者は様子を見た…")
        } else {
            println("勇者は${ i }回目の攻撃をした!") 
        }
    }
}

forを抜ける

【 修正前 】
fun main() {
    for(i in 1..5){
        if( i == 4 ){
            println( "勇者は様子を見た…")
        } else {
            println("勇者は${ i }回目の攻撃をした!") 
        }
    }
}

【 修正後 】
fun main() {
    for(i in 1..5){
        if( i == 4 ){
            println( "勇者は様子を見た…")
            break
        } else {
            println("勇者は${ i }回目の攻撃をした!") 
        }
    }
}

ドラゴンが火を吐く

【 サンプル 】
fun main() {
    var hp:Int = 300	// HP(体力)
    for(i in 1..5){
        println("ドラゴンが火を吐いた!")
        hp -= 100
        println("勇者は100のダメージ!(HP:${ hp })")
    }
}

IFの追加

【 サンプル 】
fun main() {
    var hp:Int = 300	// HP(体力)
    for(i in 1..5){
        println("ドラゴンが火を吐いた!")
        hp -= 100
        println("勇者は100のダメージ!(HP:${ hp })")
        if( hp <= 0){
            println("勇者は倒れた…")
            break
        }
    }
}

練習問題1

以下の???を修正して、プログラムを完成させてください。

【 修正前 】
fun main() {
    var ans:Int = 0	// 合計金額
    for(i in 1..5){
        ans += 380
        println("勇者は${???}個目のイチゴ買いました。")
        println("合計金額は${???}円です。")
    }
}

【 実行結果 】
勇者は1個目のイチゴ買いました。
合計金額は380円です。
勇者は2個目のイチゴ買いました。
合計金額は760円です。
勇者は3個目のイチゴ買いました。
合計金額は1140円です。
勇者は4個目のイチゴ買いました。
合計金額は1520円です。
勇者は5個目のイチゴ買いました。
合計金額は1900円です。

練習問題2

以下のプログラムの???を修正してプログラムを完成させてください。

【 修正前 】
fun main() {
    var ans:Int = 0	// 合計金額
    for(i in 1..5){
        ans += 380
        println("魔法使いは${i}個目のイチゴ買いました。")
        println("合計金額は${ans}円です。")
        if( ??? ){
            println("1000円超えたので買うのを止めました。")
            ???
        }
    }
}

【 実行結果 】
魔法使いは1個目のイチゴ買いました。
合計金額は380円です。
魔法使いは2個目のイチゴ買いました。
合計金額は760円です。
魔法使いは3個目のイチゴ買いました。
合計金額は1140円です。
1000円超えたので買うのを止めました。

まとめ

・今回はforにif、breakなどを組み合わせました。

・ifは条件分析で、breakはループを抜ける命令です。

・組み合わせが無数に出来るので、理解より慣れを優先してください。