VB.NET有整个程序循环,直到用户决定退出?

时间:2013-03-05 22:00:17

标签: vb.net loops console

我有一个简单的程序来平均十个(用户定义的)数字,然后打印结果。在程序结束时,我想打印Would you like to average a new set of numbers? (Y/N)如果用户输入y,我希望程序从顶部再次执行。如果用户输入n,则程序应该关闭。我试过研究这个,但只找到了让整个控制台退出并重新打开的方法,这不是我想要的。

2 个答案:

答案 0 :(得分:2)

要检测用户输入的内容,您有几个选项:

Console.ReadKey()

会读取下一次击键。然后,您可以使用简单的Select Case分支来选择要执行的操作。

您也可以使用:

Console.ReadLine()

将返回一个字符串(在用户按下回车后)。然后,您可以使用简单的If语句来确定字符串中的内容(如果输入的内容不是“y”或“n”,则重复查询。)

示例:

Shared Sub Main()    
    While True
        AverageNums()
        Console.WriteLine( "Do you want to run again? (Y/N)" )
        Dim key = Console.ReadKey()
        If key.Key = ConsoleKey.N Then
            Exit While
        End If
    End While    
End Sub

Shared Sub AverageNums()
    ' ...
End Sub

答案 1 :(得分:0)

我的回答可能在游戏中有点晚了,但我想我会分享一个实现try-catch方法的紧凑版本。

Sub Main()
    Do
        Try
            Console.Write("Enter a value: ")
            Console.ReadLine()
            '...

            SomeProcedure()

        Catch ex As Exception
            Console.WriteLine(ex.ToString)
        Finally
            Console.Write("Enter another value? (N for No) ")
        End Try

    Loop Until Console.ReadLine() = "N"

End Sub

Sub SomeProcedure()
    '...
End Sub