2016-06-12 3 views
0

Я был вынужден колледжем сделать приложение в 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 Тогда», но нет никакой разницы.

+0

Выполните проверку в обратном порядке. В настоящее время> 100 улавливает все, что не меньше 100. Ваши сравнения должны, вероятно, быть> = – dbasnett

+0

, потому что это логическая проблема, 600 по-прежнему> в 100. так что это будет продолжаться 2-го утверждения – CodeSlayer

ответ

0

Основываясь на мой комментарий

If calculation >= 1000 Then 

    ElseIf calculation >= 500 Then 

    ElseIf calculation >= 100 Then 

    Else 
     'lass than 100 
    End If 
+0

Добро пожаловать. – dbasnett

1

Прежде всего используйте & вместо + при концентрации строк. Во-вторых, если расчет> 500, он также больше 100, 200 и т. Д. Поэтому вам нужно реализовать диапазон. Поэтому подумайте о логике.

+0

Спасибо, я сделал, как dbasnett предложить и это работает. Спасибо за ваше время, и все «+» теперь заменены на «&». Спасибо. – user5717551