简体   繁体   English

如何在visual basic中找到5中最大的数字?

[英]How to find the largest number among 5 in visual basic?

I want to find it using the IF statements and NESTED IF statements.我想使用 IF 语句和 NESTED IF 语句找到它。 I know how to find the largest among 3 numbers, but can't do the 5. I want to follow the same concept as the code below:我知道如何在 3 个数字中找到最大的,但不能找到 5。我想遵循与下面代码相同的概念:

Dim number1, number2, number3, largest as integer
number1= 2
number 2= 7
number3= 14
If number1>number2 then
 if number1>number 3 then
     largest= number1
     else
      largest= number3
      End If
 Else If number2> number3 then
  largest= number2
  else 
      largest number3
 End If
label1.text= largest

By comparing each number to largest and only assigning it if it's larger you will end up with the largest number assigned to largest.通过将每个数字与最大数字进行比较,并且仅在它较大时才分配它,您最终将获得最大数字分配给最大数字。

    Dim number1, number2, number3, largest As Integer
    number1 = 2
    number2 = 7
    number3 = 14

    ' if 2 > 0 then largest = 2
    If number1 > largest Then largest = number1
    ' if 7 > 2 then largest = 7
    If number2 > largest Then largest = number2
    ' if 14 > 7 then largest = 14
    If number3 > largest Then largest = number3

    label1.text = largest

The logic requires some re-thinking.逻辑需要一些重新思考。 At the moment you are using a brute force approach which, as you have already discovered, becomes more complicated the larger the original set.目前您正在使用蛮力方法,正如您已经发现的那样,原始集合越大,该方法变得越复杂。 And your solution is not really maintainable - what if you wanted 4 numbers, 10 numbers etc, you would have to rewrite code all the time.而且您的解决方案并不是真正可维护的 - 如果您想要 4 个数字、10 个数字等,您将不得不一直重写代码。

Modern coding languages include loops and collections to make our lives easier.现代编码语言包括循环和集合,让我们的生活更轻松。

Function MyMax(Numbers() As Long) As String
    Dim largest As Long = Long.MinValue
    If Numbers.Count > 0 Then   ' it is ok to find the maximum from a single number!
        For iterator = 0 To Numbers.Count - 1
            If Numbers(iterator) > largest Then largest = Numbers(iterator)
            'largest = If(Numbers(iterator) > largest, Numbers(iterator), largest) ' another way of achieving the line above
        Next
        Return largest.ToString
    Else
        Return "Error - no numbers to check!"
    End If
End Function

Sub testMyMax()
    Debug.Print(MyMax({2, 7, 14}))
End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM