vb.net控制台应用程序只工作一次
我只是在学习用vb.net编写代码,目前正忙于使用vb.net控制台应用程序。我一辈子都想不出什么来。在这里可能有人问过这个问题,但我无法通过搜索找到任何东西。我刚刚编写了一个简单的“检查是否输入了Y或N。如果输入了Y/N,则显示‘您已输入Y/N’”程序,第一次它就可以正常工作。然而,在第一次输入之后,我无法让流程重复。我得到的只是一片空白。例如,如果我输入y,我将得到相应的消息。然而,如果在那之后我输入n,我什么也得不到 代码如下:vb.net控制台应用程序只工作一次,vb.net,loops,console,readline,Vb.net,Loops,Console,Readline,我只是在学习用vb.net编写代码,目前正忙于使用vb.net控制台应用程序。我一辈子都想不出什么来。在这里可能有人问过这个问题,但我无法通过搜索找到任何东西。我刚刚编写了一个简单的“检查是否输入了Y或N。如果输入了Y/N,则显示‘您已输入Y/N’”程序,第一次它就可以正常工作。然而,在第一次输入之后,我无法让流程重复。我得到的只是一片空白。例如,如果我输入y,我将得到相应的消息。然而,如果在那之后我输入n,我什么也得不到 代码如下: Module Module1 Sub Main()
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
我假设答案非常简单,但我似乎无法找到答案,也无法在网上找到答案
谢谢您的帮助。您需要在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
这是你的问题:
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
您需要将
行
重新分配给从控制台读取的下一行,如下所示:
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
必须在行字符串中存储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
结束模块在循环中,您正在执行
Console.ReadLine()
操作,而不使用该值执行任何操作,然后执行line=“”
。您的循环以空行无限循环,并忽略用户输入
删除两行
Console.ReadLine()
,然后将line=”“
替换为line=Console.ReadLine()。
哇,这么多答案这么快!你没事,这就成功了。谢谢Jon B!哇,这么多答案这么快!你没事,这就成功了。谢谢你,乔纳森!哇,这么多答案这么快!你没事,这就成功了。谢谢你,安德鲁克斯!哇,这么多答案这么快!你没事,这就成功了。谢谢你,波迪顿!哇,这么多答案这么快!你没事,这就成功了。谢谢Dan Puzey!