⛹️‍♀️

ループ処理 ( Go入門連載 第4回 )

2021/03/06に公開

シリーズの目次

  1. Goの導入 for MacOS
  2. パッケージ
  3. 変数とデータ型
  4. 条件分岐
  5. ループ処理
  6. 配列
  7. 関数

for文

  • for 初期値; 継続条件; 更新文 {} で繰り返し処理
  • if文と同様に () で囲まなくてOK
func main() {
    for i := 0; i < 10; i++ {
        println(i)
    }
}
  • for 条件式 {} でも繰り返し処理できる
  • 条件式の結果が true なら繰り返し処理する
func main() {
    var i int
    for i < 100 {
        println(i)
	i++
    }
}
  • for {} でも繰り返し処理ができる。その場合は無限ループになる。
func main() {
    for {
        println("Infinite loop")
    }
}
  • break でfor文を抜けれる
  • break のあるfor分のみ抜けれる
func main() {
    var i int
    for {
        if i > 100 {
	    break;
	}
	println(i)
	i++
    }
}
  • breakラベル でfor文を抜けれる
  • 2重for文を抜ける時に使用される
  • forブロックの下にラベルを書いたらエラーになる
func main() {
LOOP:
    for {
        for {
	    break LOOP
	}
    }
}

演習問題

今回の演習ではこの問題を解いていきましょう!!
https://atcoder.jp/contests/abc090/tasks/abc090_b

回答例(分からなかった場合のみ確認してください)
package main

import "fmt"

func main() {
    var a, b, ans int
    fmt.Scan(&a, &b)
    
    for i := a; i <= b; i++ {
        if i/10000 == i%10 && i/1000%10 == i/10%10 {
            ans++
	}
    }
    
    fmt.Println(ans)
}

Discussion