2

私はちょうど vb.net でコーディングすることを学んでおり、現在 VB.net コンソール アプリケーションをいじっています。私は一生、何かを理解することはできません。以前ここで質問されたことがあるかもしれませんが、検索しても何も見つかりません。簡単な「YまたはNが入力されたかどうかを確認します。y/nが入力された場合は、「y/nが入力されました」と表示する」プログラムをコーディングしただけで、最初は正常に動作します。ただし、最初のエントリの後、プロセスを繰り返すことができません。私が返すのは空白だけです。たとえば、y と入力すると、対応するメッセージが表示されます。ただし、その後 n を入力すると、何も返されません。

コードは次のとおりです。

Module Module1

Sub Main()

    Console.Title = "Hello"
    Console.WriteLine("Y or N")
    Dim line As String
    line = Console.ReadLine()
    Do Until line = "exit"
        If line = "y" Then
            Console.WriteLine("you have chosen y")
            Console.ReadLine()
        ElseIf line = "n" Then
            Console.WriteLine("you have chosen n")
            Console.ReadLine()
        End If
        line = ""
    Loop
End Sub

End Module

答えは非常に単純だと思いますが、オンラインで答えを見つけたり見つけたりすることはできません。

助けてくれてありがとう。

4

5 に答える 5

1

Console.ReadLine() の値を Line 文字列に格納する必要があります。

Module Module1

Sub Main()

    Console.Title = "Hello"
    Console.WriteLine("Y or N")
    Dim line As String
    line = Console.ReadLine()
    Do Until line = "exit"
        If line = "y" Then
            Console.WriteLine("you have chosen y")
        ElseIf line = "n" Then
            Console.WriteLine("you have chosen n")
        End If
        line = Console.ReadLine()
    Loop
End Sub

エンドモジュール

于 2012-10-25T15:11:12.373 に答える
1

Do ループで次のConsole.Readline()ように割り当てる必要があります。line

Do Until line = "exit"
    If line = "y" Then
        Console.WriteLine("you have chosen y")
    ElseIf line = "n" Then
        Console.WriteLine("you have chosen n")            
    End If
    line = Console.ReadLine()
Loop
于 2012-10-25T15:09:59.273 に答える
0

この行はあなたの問題です:

line = ""

コンソールを読んでいますが、それを変数に割り当てていません。

それがどうあるべきかは次のとおりです。

Do Until line = "exit"
    If line = "y" Then
        Console.WriteLine("you have chosen y")
    ElseIf line = "n" Then
        Console.WriteLine("you have chosen n")
    End If
    line = Console.ReadLine()
Loop
于 2012-10-25T15:10:38.347 に答える
0

line次のように、コンソールから読み取られた次の行が何であれ、再割り当てする必要があります。

Module Module1

    Sub Main()

        Console.Title = "Hello"
        Console.WriteLine("Y or N")
        Dim line As String
        line = Console.ReadLine()
        Do Until line = "exit"

            If line = "y" Then
                Console.WriteLine("you have chosen y")
            ElseIf line = "n" Then
                Console.WriteLine("you have chosen n")
            End If

            line = Console.ReadLine()   ''here

        Loop
    End Sub

End Module
于 2012-10-25T15:10:38.380 に答える
0

あなたのループ内Console.ReadLine()では、値を使って何もせずにやっていますline = "". あなたのループは空の行で無限に回り、ユーザー入力を無視しています。

Console.ReadLine()2 行を削除してline = ""から、line = Console.ReadLine().

于 2012-10-25T15:11:23.607 に答える