VB.NETをつつく4ー繰り返し構造。くるくる回るよ。
次はプログラムの繰り返し構造だー
2回繰り返してみたピヨ。
プログラムをひたすら1行目から最後までずーと流れ落ちるように実行するなんて不可能だし面倒なだけ。
だからVB.NETにもプログラム繰り返すための文法があるんだ。
その文法とは、Forループ、Whileループ、 Do/Whileループ、ForEachループの4つもあるんだ。
ビックリした人が居るかもしれないけど、そんなに難しくないので1つずつ見ていこう。
では早速forループのつまらないコードを見てね。
Imports System
Module Module1
Sub Main()
For i As Integer = 0 To 9
Console.Write(i & vbTab)
Next
End Sub
End Module
このコードは10回数値をコンソール画面へ出力するものなんだ。
Console.Write( i + "\t" )を10回書く事を思えばループのありがたさがわかるよね。
つまりforループとは一定の回数ループする文法なんだ。
じゃあ、次はWhileループを見てみよう。
Imports System
Module Module1
Sub Main()
Dim msg As String = "何かキー入力してEnterキーを押して。" + _
"※Qを押せば終了だよ。"
Console.WriteLine(msg)
Dim str As String = Console.ReadLine()
While str <> "q" 'Qキーを押されるまでループ
Console.WriteLine("貴方は今" + str + "を押しましたね。")
Console.WriteLine(msg)
str = Console.ReadLine()
End While
End Sub
End Module
早速試してみよう。forループとの違いがわかるかな?forループの例とwhileループの例との違いは、ループ回数が事前にわからない所なんだ。
事前に何回ループしたらいいのかわからない場合はwhileループを使おう。
じゃあ次は・・・do/whileループの例を見てみよう。
Imports System
Module Module1
Sub Main()
Dim msg As String = "何かキー入力してEnterキーを押して。" + _
"※Qを押せば終了だよ。"
Console.WriteLine(msg)
Dim str As String = Console.ReadLine()
Do
Console.WriteLine("貴方は今" + str + "を押しましたね。")
Console.WriteLine(msg)
str = Console.ReadLine()
Loop While str <> "q" 'Qキーを押されるまでループ
End Sub
End Module
さっきのWhileループの例とそっくりに作ったけど、その違いがわかるかな?答えは・・・・・1回は実行する事なんだ。
両方のコードを実行していきなりqを入力してEnterキーを押してみよう。
Do/Whileループの場合の方が表示されるメッセージが多いよね?
それは、ループ内のコードが実行される回数が多いからなんだピヨ。
C#はの記事はここで終わっているけど、VB.NETの方が実は豊富なんだ。
さらに、
もちろん結果は同じだよ。VB.NETはC#よりも豊富な記述が出来るんだね。それが良い事なのかはわからないけど、ビックリしたピヨ。
最後はForEachループを見てみよう。
Imports System
Module Module1
Sub Main()
Dim message() As String = { _
"りんご", "とまと", "メロン", "みかん"}
For Each msg As String In message 'ここに注目
Console.WriteLine(msg)
Next
End Sub
End Module
例のコードをじーと見ると、配列と配列の要素の型がForEach内で宣言されているのがわかる。このforeachループは、配列などの複数の要素がある型の全ての要素を順次取り出す時に使用するんだ。
つまり、この例の場合は「message配列変数の要素がある限りループしなさい!」といっているんだ。
これでひとまず全部の繰り返し構造を説明したピヨ。
じゃあ今回はこれでおしまいにするよ。では、また会いましょう。