While で繰り返し処理する

        Dim str As String = String.Empty
        Dim ErrorCount As Integer = 0

        While True
            Console.Write("文字「a」または「b」を入力してください >")
            str = Console.ReadLine() '入力された値を読み込む
            If (str = "a") Or (str = "b") Then
                Console.WriteLine("入力された文字: {0}", str)
                Exit While
            Else
                Console.WriteLine("「a」または「b」以外が入力されました ErrorCount=: {0}", ErrorCount)
                If ErrorCount > 5 Then
                    Console.WriteLine(" {0} 回以上エラーが発生したため終了します", ErrorCount)
                    Exit While
                Else
                    ErrorCount += 1
                    Continue While
                End If
            End If
        End While
        Console.WriteLine("Enterキーを押すと終了します。")
        Console.ReadLine()

 
Continue を気にして、入れ子を減らすとこんな感じ。この例だとあまり意味がないが、処理が多い場合、判別時にはじかれたらすぐに次の値を処理できるので有効ですよねそうですよね。

        While True
            If ErrorCount >= 5 Then
                Console.WriteLine(" {0} 回以上エラーが発生したため終了します", ErrorCount)
                Exit While
            End If

            Console.Write("文字「a」または「b」を入力してください >")
            str = Console.ReadLine() '入力された値を読み込む

            If Not ((str = "a") Or (str = "b")) Then
                ErrorCount += 1
                Console.WriteLine("「a」または「b」以外が入力されました ErrorCount=: {0}", ErrorCount)
                Continue While
            End If

            Console.WriteLine("入力された文字: {0}", str)
            Exit While
        End While