vb.net控制台应用程序只能运行一次

时间:2012-10-25 15:06:39

标签: vb.net loops console readline

我刚刚学习在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

我认为答案非常简单,但我似乎无法弄明白或在网上找到答案。

感谢您的帮助。

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您必须在Line字符串中存储Console.ReadLine()的值。

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

结束模块

答案 2 :(得分: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

答案 3 :(得分: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

答案 4 :(得分:0)

在你的循环中,你正在做Console.ReadLine()而没有对值做任何事情,然后你正在做line = ""。你的循环用空行无限循环,忽略用户输入。

删除两行Console.ReadLine(),然后将line = ""替换为line = Console.ReadLine().