2016-06-03 5 views
0

Aus irgendeinem Grund funktioniert die erste "If" -Anweisung, wenn ich debugge, aber wenn ich einen anderen Optionsfeld versuche oder die gleiche Schaltfläche verwende, aber versuche das zweite "If" Statement true, ich klicke auf den Button "Reward Points berechnen", es wird aber nicht berechnet. Es berechnet nur die erste "If" -Anweisung. Hier ist mein Code. Ich entschuldige mich, wenn mein Jargon nicht stimmt. Ich nehme nur diese Klasse, weil es erforderlich ist. Ich AttacheVerwenden von Optionsfeldern in Microsoft Visual Studio 2012 - Codierungsfehler

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Const basic1 As Double = 0.03 
    Const basic2 As Double = 0.05 
    Const basic3 As Double = 0.08 
    Const basic4 As Double = 0.1 
    Const basic5 As Double = 0.15 
    Dim totalLabel As Double 
    Dim doubleReward As Double 

    Double.TryParse(RewardDisplay.Text, doubleReward) 
    Double.TryParse(TotalTextBox.Text, totalLabel) 

    If basicRadioButton.Checked AndAlso totalLabel < 100 Then 
     RewardDisplay.Text = totalLabel * basic1 
    ElseIf basicRadioButton.Checked AndAlso totalLabel < 200 or >= 100 Then 
     RewardDisplay.Text = totalLabel * basic2 
    ElseIf basicRadioButton.Checked AndAlso totalLabel >= 200 Then 
     RewardDisplay.Text = totalLabel * basic3 
    ElseIf standardRadioButton.Checked AndAlso totalLabel < 199 Then 
     RewardDisplay.Text = totalLabel * basic3 
    ElseIf standardRadioButton.Checked AndAlso totalLabel >= 200 Then 
     RewardDisplay.Text = totalLabel * basic4 
    ElseIf premiumRadioButton.Checked AndAlso totalLabel < 299 Then 
     RewardDisplay.Text = totalLabel * basic4 
    ElseIf premiumRadioButton.Checked AndAlso totalLabel >= 300 Then 
     RewardDisplay.Text = totalLabel * basic5 
    End If 
End Sub 

Antwort

0

Sie haben die Werte der Variablen im Debug-Modus sehen basicRadioButton.Checked und totalLabel zu verstehen, warum der Algorithmus nicht geht, was man erwartet. Sie Code vereinfachen, vielleicht

If basicRadioButton.Checked then 
    'the totalLabel conditions now 
end if 

if standardRadioButton.Checked then 
    'the totalLabel conditions now 
end if 

if premiumRadioButton.Checked then 
    'the totalLabel conditions now 
end if 

dies etwas Link tun Dies hilft Ihnen, Ihre Fehler zu finden.

+0

Ich habe versucht, es unter die Vereinfachung zu trennen berechnet "If" Aussagen und es nach wie vor nur die erste "If" Aussage Wenn basicRadioButton.Checked AndAlso totalLabel <100 Dann RewardDisplay.Text = totalLabel * basic1 End If Wenn basicRadioButton.Checked AndAlso totalLabel < 200 or > = 100 Dann RewardDisplay.Text = totalLabel * basic2 End If Wenn basicRadioButton.Checked AndAlso totalLabel> = 200 Dann RewardDisplay.Text = totalLabel * Basic3 – AFiddelke

+0

Aber was die Werte der basicRadioButton sind. Überprüft und tot alLabel vor dem If? Sie können einen Haltepunkt vor dem If sehen und die Maus in die Variablen setzen, um die Werte zu sehen. Wenn die Werte falsch sind, liegt das Problem vor den IFs – ruirodrigues1971

Verwandte Themen