我刚刚学习在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
我认为答案非常简单,但我似乎无法弄明白或在网上找到答案。
感谢您的帮助。
答案 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().