Я был вынужден колледжем сделать приложение в Visual Studio (Basic), и у меня никогда не было опыта с этим языком, прежде чем я запутался. Я сделал If
заявление, которое работает, а затем я добавил EleseIf
, который также работает, но после того, как я добавил второй ElseIf
, он не работает. Кажется, что только If
заявление, и первый ElseIf
работает для меня, но мне нужно больше, чем просто 1 ElseIf
заявление.VB ElseIf Statement Limited 1
Public Class receipt
Private Sub receipt_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim outputValue As Decimal = My.Settings.outputamount.Remove(4)
Dim calculation As Decimal = outputValue * My.Settings.inputamount
Dim totalwithoutcharge As String = calculation.ToString
customername.Text = "Name: " + My.Settings.Username
Label6.Text = "Entered Money: " + My.Settings.inputamount + " " + My.Settings.currency
Label7.Text = "Converted To: " + totalwithoutcharge + " " + My.Settings.outputcurrency
If calculation < 100 Then
Label8.Text = "Charge: 0%"
Label9.Text = "Total: " + totalwithoutcharge + " " + My.Settings.outputcurrency
ElseIf calculation > 100 Then
Label8.Text = "Charge: 1%"
Label9.Text = "Total: " + totalwithoutcharge + " " + My.Settings.outputcurrency
ElseIf calculation > 500 Then
Label8.Text = "Charge: 2%"
Label9.Text = "Total: " + totalwithoutcharge + " " + My.Settings.outputcurrency
ElseIf calculation > 1000 Then
Label8.Text = "Charge: 3%"
Label9.Text = "Total: " + totalwithoutcharge + " " + My.Settings.outputcurrency
Else
Label8.Text = "Something went wrong"
End If
End Sub
End Class
Я вошел много значений я добавить более 600, и это было все еще показывает «Charge: 1%», где он должен показать 2% вместо. То же самое происходит со значениями выше 1000, они все равно покажут 1%. Но когда значение меньше 100, тогда все в порядке, и оно показывает 0%.
Over 100 works fine too Over 500 doesn't work
Я также пытался сделать это с двумя условиями, где она будет выглядеть в диапазоне, но он не работает слишком. Я пробовал «Расчет ElseIf> 100 И вычисление> 500 Тогда», но нет никакой разницы.
Выполните проверку в обратном порядке. В настоящее время> 100 улавливает все, что не меньше 100. Ваши сравнения должны, вероятно, быть> = – dbasnett
, потому что это логическая проблема, 600 по-прежнему> в 100. так что это будет продолжаться 2-го утверждения – CodeSlayer