JavaScriptを有効にしてください

Python,Goで二重ループのきれいな抜け方

 ·  ☕ 1 分で読めます
Photo by Burst from Pexels

Photo by Burst from Pexels

ググれば最初に出てくるやり方ですが、きれいだし、自分が忘れないように書いておきます

Python

for i in loop1:
  for j in loop2:
    if time_to_break:
      break
  else:
    continue
  break

説明すると、
for…else…文とは、forが全て回りきった後一度だけelseの中を実行するというものです。
これを利用し、ループ2がbreakせず回りきるとelseに飛んでループ1を継続します。一方、ループ2の中でbreakすると、elseが実行されずループ1もbreakします。

Go

func main(){
    Loop:
        for i := 0; i < 3; i++ {
            for j := 0; j < 3; j++ {
                break Loop
            }
        }
}

Goでは、labeled breakという技が使えます。
上のコードではブロックにLoopという名前を付けておいて、中でbreakする際に名前を指定できます。即そのブロックを抜けられます。

共有