Magicode logo
Magicode
0
2 min read

第10話 V言語のループ処理

カサレリア。katzenです。

前回、V言語で超簡単なゲームを作る2を再開しましたが、処理を繰り返す必要があることがわかりました。

今回はループ処理を紹介しましょう。

公式

for

まずは基本

for <終了条件> {

そこまで困らないと思います。

Cなどに慣れている方はこちら

for i:=0;i<10;i++ {
  print(i)
}
// >>> 0123456789

よくある書き方ですが、V言語として気にする箇所は、 imutで宣言されていないのに、なぜi++と足していけるのかというところです。

これはC言語風にしたかったので、このようなスタイルにしたみたいでです。

そのため、特例的に許可されています。

for inもあるのですが、配列を扱うときに紹介したいと思います。

while,break

while(true)見たいな無限ループは条件式を省略して書けます。

breakはループを抜けるときにつかいますね。

j := 0
for {
   print(j)
   if j++ == 9 {
     break  // ループを抜けます
  }
}
// >>> 0123456789

continue

continueを指定することでループのはじめに戻すことが出来ます。

mut k := 0
for  k++ < 10 {
   if 0 == k %2 {
    continue  // 偶数だったらループの始まりに戻る
   }
   print(k)
}
// >>> 13579

label

また、continue,breakはラベルを使用することが出来ます。

<ラベル名>: for // ...
  // ...
  continue <ラベル名>
  // ...
  break<ラベル名>

の様に書きます。

これで何が出来るかというと、何もラベルを付けない場合、今いるループを再開したり、抜けたりするだけなのですが、「この条件だったら全部のループを抜けたい!」となった場合、一気に抜けることが出来ます。

outer: for i := 0; i<5 ; i++ {
  print("${i}:")
  for j := 0;j<5 ;j++{
     if  j > i {  // jがiより大きくなったらルートループへ
     println("")
     continue outer
    } else if i > 3 { // iが3を超えたら終了
     println("bye")
      break outer
    }  // if
    print(j)
  } // for
  println("ここへはこないよ")
} // for
// 0:0
// 1:01
// 2:012
// 3:0123
// 4:bye

少しわかりにくいかもしれませんが、もしそんなシーンが来たら、continueやbreakにラベルが指定できると思い出してください。

ループによって処理を繰り返すことが出来るようになりました。

次回「V言語で超簡単なゲームをつくる3」見てください!

Discussion

コメントにはログインが必要です。