0

10個の(ユーザー定義の)数値を平均して結果を出力する簡単なプログラムがあります。プログラムの最後に、プログラムを上から再度実行したい場合よりもWould you like to average a new set of numbers? (Y/N)ユーザーが入力した場合に印刷したいと思います。yユーザーが入力したn場合、プログラムは終了します。私はこれを調査しようとしましたが、コンソール全体を終了して再度開く方法しか見つかりませんでした。これは私が望んでいることではありません。

4

2 に答える 2

2

ユーザーが入力した内容を検出するには、いくつかのオプションがあります。

Console.ReadKey()

次のキーストロークを読み取ります。次に、単純なSelect Caseブランチを使用して、何をするかを選択できます。

次のものも使用できます。

Console.ReadLine()

これは文字列を返します(ユーザーがEnterキーを押した後)。次に、単純な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 に答える