• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

fehler bei schleife

daschifahrer

Neues Mitglied
hey leute
ich hab mal zum spaß nen BMI rechner programiert um die schleifen nochmal durchzugehn. jedoch hat man hier entweder untergewicht oder normalgewicht
untergewicht passt einwandfrei (hier ist aber auchnoch die if schliefe) danach kommt die for schleife und da hängt das problem
ich hoffe mir kann jmd helfen :

Code:
    Private Sub btnauswertung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnauswertung.Click

        Call bmi()

        Dim struntergewicht As String = "Sie haben Untergewicht bitte suchen sie einen Arzt auf!"
        Dim strnormal As String = "Sie haben Normalgewicht"
        Dim strübergewicht As String = "Sie haben Übergewicht bitte suchen sie einen Arzt auf!"
        Dim strstarkesübergewicht As String = "Sie haben Starkes Übergewicht bitte suchen sie einen Arzt auf!"
        Dim dblbmi As Double = CDbl(txtbmi.Text)



        If radm.Checked = True Then

            'männlich


            If dblbmi < 20 Then

                MessageBox.Show(struntergewicht)
                Exit Sub

            End If

            For dblbmi = 20 To 25
                MessageBox.Show(strnormal)
                Exit Sub
            Next


            For dblbmi = 25 To 30
                MessageBox.Show(strübergewicht)
                Exit Sub
            Next

            If dblbmi > 31 Then
                MessageBox.Show(strstarkesübergewicht)
                Exit Sub
            End If

        End If

        If radw.Checked = True Then

            'weiblich


            If dblbmi < 19 Then

                MessageBox.Show(struntergewicht)
                Exit Sub
            End If

            For dblbmi = 19 To 24
                MessageBox.Show(strnormal)
                Exit Sub
            Next

            For dblbmi = 25 To 30
                MessageBox.Show(strübergewicht)
                Exit Sub
            Next

            If dblbmi > 31 Then
                MessageBox.Show(strstarkesübergewicht)
                Exit Sub
            End If

        End If
    End Sub

    Public Sub bmi()
        Dim dblbmi As Double
        Dim dblgewicht As Double
        Dim dblgröße As Double

        If IsNumeric(txtGewicht.Text) = False Then
            MessageBox.Show("Bitte im Feld Gewicht nur Zahlen angeben!!", "Nur Zahlen", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtGewicht.Select()
            Exit Sub
        End If

        If txtGewicht.Text = "" Then
            MessageBox.Show("Gewichtseingabe vergessen!", "Eingabe vergessen", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtGewicht.Select()
            Exit Sub
        End If

        If IsNumeric(txtGröße.Text) = False Then
            MessageBox.Show("Bitte im Feld Größe nur Zahlen eingeben!!", "Nur Zahlen", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtGröße.Select()
            Exit Sub
        End If

        If txtGröße.Text = "" Then
            MessageBox.Show("Größeneingabe vergeessen!", "Eingabe vergessen", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

        dblgewicht = CDbl(txtGewicht.Text)
        dblgröße = (CDbl(txtGröße.Text) / 100)

        dblbmi = (dblgewicht / dblgröße ^ 2)

        txtbmi.Text = dblbmi
    End Sub
End Class
 
Werbung:
Erstmal vorneweg, es gibt keine if-Schleifen. Ein if ist eine Kontrollstruktur. Es wird über die if-Bedingung kontrolliert, was gemacht werden soll.

Ich hab mir jetzt nur mal die btnauswertung_Click angeschaut. Ich weiß zwar nicht genau, was Du mit der for-Schleife erreichen willst, aber ich vermute mal, dass Du einen Bereich von Werten prüfen willst, z.B. 20 bis 25. Das würde dann aber so aussehen:
Code:
If dblbmi >= 20 and dblbmi <=25 Then
   MessageBox.Show(strnormal)
   Exit Sub
End If
Gruß thuemmy
 
Code:
For dblbmi = 20 To 25
                MessageBox.Show(strnormal)
                Exit Sub
            Next
Mit diesem Abschnitt setzt du ja den BMI-Wert auf 20. Übergewicht kann also nicht angezeigt werden.:D
mfg Bleistift
 
Werbung:
klingt logisch :p
werd ich daheim gleich ausprobieren sollte also ein == schreiben oder ist des in vb anders als in java php etc?^^
mit den if des dürfte doch eigl gar nicht hinhaun da die beiden ja zu boolean gemacht werden und da geht doch and nicht oder?
hatte es mit nem if nähmlich schonmal ausprobiert jedoch auch nur mit einem = also ich sehs wenn ich daheim bin :p

Edit:// sry leute hab den wichtigsten teil der beschreibung meiner schleife i-wie überflogen und hab des daher net wirklich kapiert ^^ sry ^^ und danke für die hilfe :D
 
Zuletzt bearbeitet:
Zurück
Oben