Vb.net 作业指导
这是我编程入门课程的第三周,我被卡住了。我可以让它运行我只是不能输入超过1个数字。这是一个vb控制台应用程序Vb.net 作业指导,vb.net,Vb.net,这是我编程入门课程的第三周,我被卡住了。我可以让它运行我只是不能输入超过1个数字。这是一个vb控制台应用程序 Module Module1 Sub Main() Dim highestNumber As Integer = -1000000000 Dim lowestNumber As Integer = 100000000 Dim userInput As Integer Console.WriteLine("Inpu
Module Module1
Sub Main()
Dim highestNumber As Integer = -1000000000
Dim lowestNumber As Integer = 100000000
Dim userInput As Integer
Console.WriteLine("Input your numbers and when you are done enter -99.")
Console.WriteLine("The app will then give the highest and lowest numbers entered.")
userInput = Console.ReadLine()
While userInput <> "-99"
If userInput >= highestNumber Then
highestNumber = userInput
ElseIf userInput <= lowestNumber Then
lowestNumber = userInput
End If
End While
Console.WriteLine("The highest number you entered is: " & highestNumber)
Console.WriteLine("The lowest number you entered is: " & lowestNumber)
Console.ReadLine()
End Sub
End Module
模块1
副标题()
Dim highestNumber为整数=-100000000
整数形式的最小数字=100000000
将用户输入设置为整数
WriteLine(“输入您的号码,完成后输入-99。”)
WriteLine(“然后应用程序将给出输入的最高和最低数字。”)
userInput=Console.ReadLine()
而用户输入“-99”
如果userInput>=最高编号,则
highestNumber=userInput
ElseIf userInput在循环开始之前,您只执行一次ReadLine
,因此您只能输入一个数字。目前的情况是,如果不输入-99,那么就有一个无限循环,因为不能在循环内更改userInput
您需要将userInput=Console.ReadLine()
的副本放在While
循环的末尾,以便输入新值并重新执行逻辑
此外,您还可以从测试中删除=
符号。除非新数字实际更高/更低,否则更改最高/最低值没有意义。将这条线移动到while循环中
userInput = Console.ReadLine()
这是我的解决办法。它检查用户的输入,如果不是整数,他们可以再试一次或输入-99然后退出。。。您还可以通过更改显示2
的几个位置来更改用户输入的数字,或者声明一个变量并设置它,然后使用它
Public Sub Main()
Dim userInput As Integer = 0
Dim lstInteger As New List(Of Integer)
Console.WriteLine("Input your numbers and when you are done enter -99." & Environment.NewLine & "The app will then give the highest and lowest numbers entered.")
Do Until userInput = -99
If Integer.TryParse(Console.ReadLine(),userInput) AndAlso userInput <> -99 Then
lstInteger.Add(userInput)
If lstInteger.Count = 2 Then Exit Do
userInput = 0
If Integer.TryParse(Console.ReadLine(), userInput) AndAlso userInput <> -99 Then
lstInteger.Add(userInput)
If lstInteger.Count = 2 Then Exit Do
Else
If userInput = -99 Then Exit Do Else Console.WriteLine("Please enter a number.")
End If
Else
If userInput <> - 99 AndAlso userInput = 0 Then
Console.WriteLine("Please enter a number.")
Else
Exit Do
End If
End If
Loop
If lstInteger.Count = 2 Then
Console.WriteLine("The highest number you entered is: " & lstInteger.Max.ToString)
Console.WriteLine("The lowest number you entered is: " & lstInteger.Min.ToString)
End If
Console.ReadLine()
End Sub
Public Sub-Main()
Dim userInput作为整数=0
Dim lstInteger作为新列表(整数的列表)
Console.WriteLine(“输入您的数字,完成后输入-99。”&Environment.NewLine&“应用程序将给出输入的最高和最低数字。”)
直到userInput=-99为止
如果Integer.TryParse(Console.ReadLine(),userInput)和also userInput-99,则
添加(用户输入)
如果lstInteger.Count=2,则退出Do
用户输入=0
如果Integer.TryParse(Console.ReadLine(),userInput)和also userInput-99,则
添加(用户输入)
如果lstInteger.Count=2,则退出Do
其他的
如果userInput=-99,则退出Do Else Console.WriteLine(“请输入一个数字”)
如果结束
其他的
如果userInput-99和also userInput=0,则
Console.WriteLine(“请输入一个数字”)
其他的
退出Do
如果结束
如果结束
环
如果lstInteger.Count=2,则
Console.WriteLine(“您输入的最大数字是:”&lstInteger.Max.ToString)
Console.WriteLine(“您输入的最低数字是:”&lstInteger.Min.ToString)
如果结束
Console.ReadLine()
端接头
有几件事不对。您是否正在寻找一个审查/清理?据我所见,用户可以输入他们想要的任何内容userInput
是一个整数而不是字符串,您不能这样比较。打开选项。你也可以决定哪一个是最高的和最低的…如果你问用户与否有关系吗?假设让他们输入两个数字并向他们显示输出。调试器将发现类似这样的错误,其速度比您编写SO问题的速度快得多。逐行遍历代码并观察变量的变化(或不变化)将帮助您像编译器一样思考并编写更好的代码。谢谢,在我检查这里之前,我刚刚发现了这一点。我要把这些标志去掉。再次感谢您的回复。