0

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

4

2 回答 2

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
于 2013-03-05T22:07:24.943 回答
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
于 2016-11-12T13:36:07.217 回答