Forum: Mikrocontroller und Digitale Elektronik BASCOM: Wie kann ich "if ( ((a<=1) || (a>=15)) && ((b<7) || (b>9)) )" umsetzen


von Philipp D. (phili)


Lesenswert?

Liebes Forum,
ich bin gerade gezwungen, ein Projekt in BASCOM umzusetzen.
Nun frage ich mich, wie ich die folgende C-Anweisung in Bascom umsetzen 
kann:
1
if ( ((a<=1) || (a>=15)) && ((b<7) || (b>9)) )...
Den ersten Teil habe ich. Der lautet
1
If a <= 1 Or a >= 15  Then...

Aber wie schaffe ich es nun, die zusätzlich "Und"-Verknüpfung zu 
realisieren?
Die Klammern sind ja nicht ganz unwichtig. Die erlaubt mir der Compiler 
aber nicht.

Danke schon mal im Voraus.

Phili

von Stefan B. (stefan) Benutzerseite


Lesenswert?

IF a <= 1 Or a >= 15 THEN
  IF b < 7 Or b > 9 THEN
    ' ...
  ENDIF
ENDIF

von der mechatroniker (Gast)


Lesenswert?

Zu BASCOM kann ich nix sagen, aber
1
If (a <= 1 Or a >= 15) And (b < 7 Or b > 9) Then
2
    ' Mach was
3
End If

geht in allen Basic-Dialekten, die mir bisher so untergekommen sind (VB, 
VBA, QuickBasic, OpenOffice Basic. Hast du vielleicht eine der Klammern 
vergessen?

Ansonsten:
1
If a <= 1 Or a >= 15 Then
2
    If b < 7 Or b > 9 Then
3
        ' Mach was
4
    End If
5
End If

ist funktional äquivalent. Oder
1
If a > 1 And a < 15 Or b >= 7 And b <= 9 Then
2
    ' Mach was anderes oder nix
3
Else
4
    ' Mach was
5
End If

vorausgesetzt, dieses BASCOM hält sich an die Konvention, daß ohne 
Klammern Und vor Oder gerechnet wird.

von Philipp D. (phili)


Lesenswert?

Hallo ihr beiden,
danke für die Hinweise.
Ja, in separaten If-Anweisungen kann man das Problem lösen. Bin ich 
irgendwie nicht drauf gekommen.

Die Klammerlösung funktioniert leider nicht, weil Bascom Klammern in 
If-Cases nicht akzeptieren will.

Danke!

Schönen Abend noch!

Phili

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.