Vb.net 作业指导

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

这是我编程入门课程的第三周,我被卡住了。我可以让它运行我只是不能输入超过1个数字。这是一个vb控制台应用程序

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问题的速度快得多。逐行遍历代码并观察变量的变化(或不变化)将帮助您像编译器一样思考并编写更好的代码。谢谢,在我检查这里之前,我刚刚发现了这一点。我要把这些标志去掉。再次感谢您的回复。