2016-06-12 9 views
0

Ich wurde von der Hochschule gezwungen, eine Anwendung in Visual Studio (Basic) zu tun, und ich hatte nie Erfahrung mit dieser Sprache vor, so dass ich verwirrt bin. Ich habe If Anweisung, die funktioniert und dann habe ich hinzugefügt EleseIf, die auch funktioniert, aber nachdem ich hinzugefügt habe ElseIf es funktioniert nicht. Es scheint nur If Aussage und die erste ElseIf funktioniert für mich, aber ich brauche mehr als nur 1 ElseIf Aussage.VB ElseIf Statement Begrenzt auf 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 

Ich habe viele Werte eingegeben ich über 600 hinzufügen habe und es war immer noch ‚Charge: 1%‘ zeigt, wo es statt 2% zeigen. Das Gleiche passiert mit Werten über 1000, es wird immer noch die 1% angezeigt. Aber wenn der Wert unter 100 ist, dann ist OK und es zeigt 0%.

Over 100 works fine too Over 500 doesn't work

Ich habe auch versucht, es mit zwei Bedingungen zu tun, wo es aus der Entfernung aussehen würde, aber es auch nicht funktioniert hat. Ich habe 'ElseIf Berechnung> 100 Und Berechnung> 500 Dann' versucht, aber es gibt keinen Unterschied.

+0

die Kontrollen in umgekehrter Reihenfolge durchführen. Derzeit> 100 fängt alles, was nicht weniger als 100 ist. Ihre Vergleiche sollten wahrscheinlich> = – dbasnett

+0

sein, weil dies ein logisches Problem ist, 600 ist immer noch> in 100. so wird es auf 2 Anweisung gehen – CodeSlayer

Antwort

0

Basierend auf meinen Kommentar

If calculation >= 1000 Then 

    ElseIf calculation >= 500 Then 

    ElseIf calculation >= 100 Then 

    Else 
     'lass than 100 
    End If 
+0

Gern geschehen. – dbasnett

1

Verwenden Sie zuerst & anstelle von + bei der Konzentration von Strings. Zweitens, wenn die Berechnung> 500 ist, ist es auch größer als 100, 200 usw. Sie müssen also einen Bereich implementieren. Denke also über die Logik nach.

+0

Vielen Dank habe ich als dbasnett vorschlagen und es funktioniert. Danke für deine Zeit und alle '+' werden jetzt durch '&' ersetzt. Vielen Dank. – user5717551