简体   繁体   中英

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

I want to find it using the IF statements and NESTED IF statements. 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:

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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