German Abbruch nach eine bestimmte Schleife

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

ich habe in einer Methode mehrere Schleifen und muss aber je nach dem nach eine bestimmten Schleife, die Methode verlassen.

folgendes habe ich gemacht:
B4X:
For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT11.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next
    
If Nummer = "28" Or "29" Or "30" Or "45" Or "46" Then Return    'Verlasse die Methode
   
    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+8)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT22.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
Next
If Nummer = "31" Or "32" Or "33" Or "47" Or "48" Then Return    'Verlasse die Methode

    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+16)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT33.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next
   
    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+24)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT44.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next

If Nummer = "34" Or "35" Or "36" Or "49" Or "50" Then Return    'nach den 32. Kanal
   
    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+32)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT55.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next
   
    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+40)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT66.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next

    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+48)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT77.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next
   
    For i = 0 To 7
        Dim p As Panel = ScrollView1.Panel.GetView(i+56)
        Dim btnTog As ToggleButton = p.GetView(1)
        If OUTPUT88.CharAt(7-i) = 1 Then
            btnTog.Checked =True
        Else
            btnTog.Checked =False
        End If
    Next

Nun bekomme ich hier die Fehlermeldung:
java.lang.RuntimeException: Cannot parse: 29 as boolean

Aber wenn ich die Zeilen IF Nummer .... wegnehme, dann bekomme ich die Fehlermeldung nicht mehr.
Aber ich muss ja irgendwie zwischen durch absteigen.

Mit einer Select Case wird zu viel Code, das wollte ich vermeiden.

Wer kennt eine bessere Idee?

VG
Sinan
 

DonManfred

Expert
Licensed User
Longtime User
deine Abfrage ist falsch.
Probiers mit
B4X:
If Nummer = "30" Or Nummer="45" Or Nummer="46" Then Return    'Verlasse die Methode
oder frage sie einzlen ab
B4X:
If Nummer = "28" Then Return    'Verlasse die Methode
If Nummer = "29" Then Return    'Verlasse die Methode
If Nummer = "30" Then Return    'Verlasse die Methode
If Nummer = "45" Then Return    'Verlasse die Methode
If Nummer = "46" Then Return    'Verlasse die Methode
 

pucki

Active Member
Licensed User
Longtime User
logische Doppelvergleiche gehen ohne Variablenangabe in VB aber auch nicht ;)

Ich kenne keine Programmiersprache wo das gilt.

Ach und noch was. Vielleicht fehlt es ja nur in deinen Post. B4x reagiert SEHR zickig wenn die Variablen nicht dimensioniert sind. Das ist hier härter als in VB. :(

Gruß

Pucki
 
Top