If-else Bedingung

Stauderr

Grünschnabel
Guten Tag,

ich wollte mal wissen, wie es möglich ist eine If-else Verschachtelung so zu programmieren, dass die erste Bedingung "wahr" ist und keine Anweisung enthält. Sondern es sollen weitere Bedingungen mit Anweisungen folgen, von denen letztendlich nur eine ausgeführt wird. Also man soll quasi die erste Bedingung als "Überbedingung" verstehen und je nach verwendeten Werten, soll eine der "Unterbedingungen" ausgeführt werden.

Lg
 

Zvoni

Erfahrenes Mitglied
Ich habe keine Ahnung von Java, von einem Programmier-Standpunkt aber wüsste ich zwei Ansätze:
Alles was jetzt kommt ist Aircode
1. Ansatz - Wüstes If-Then-Else gehampel
Code:
If ErsteBedingung=Wahr AND ZweiteBedingung=Wahr Then
  'TueDies
ElseIf ErsteBedingung=Wahr AND DritteBedingung=Wahr Then
  'TueJenes
ElseIf ErsteBedingung=Wahr AND VierteBedingung=Wahr Then
  'SprengeWeissesHaus
Else
   'ZuckeMitDenSchultern
End If

2. Ansatz - Eine if Abfrage auf die ErsteBedingung gefolgt von einem Case-Statement (In C heissen die glaub ich Switch)
Code:
If ErsteBedingung=Wahr Then
   Select Case Wahr
         Case ZweiteBedingung
                  'TueDies
         Case DritteBedingung
                  'TueJenes
         Case VierteBedingung
                   'SprengeWeissesHaus
         Case Else
                   'ZuckeMitDenSchultern
   End Select
End If
 

Stauderr

Grünschnabel
Ich habe keine Ahnung von Java, von einem Programmier-Standpunkt aber wüsste ich zwei Ansätze:
Alles was jetzt kommt ist Aircode
1. Ansatz - Wüstes If-Then-Else gehampel
Code:
If ErsteBedingung=Wahr AND ZweiteBedingung=Wahr Then
  'TueDies
ElseIf ErsteBedingung=Wahr AND DritteBedingung=Wahr Then
  'TueJenes
ElseIf ErsteBedingung=Wahr AND VierteBedingung=Wahr Then
  'SprengeWeissesHaus
Else
   'ZuckeMitDenSchultern
End If

2. Ansatz - Eine if Abfrage auf die ErsteBedingung gefolgt von einem Case-Statement (In C heissen die glaub ich Switch)
Code:
If ErsteBedingung=Wahr Then
   Select Case Wahr
         Case ZweiteBedingung
                  'TueDies
         Case DritteBedingung
                  'TueJenes
         Case VierteBedingung
                   'SprengeWeissesHaus
         Case Else
                   'ZuckeMitDenSchultern
   End Select
End If
Also im ersten Ansatz soll ich die erste Bedingung in jede weitere if Bedingung mit aufnehmen?
 

Yaslaw

alter Rempler
Moderator
Ein if() in einem if(). So enfach.
Ok, ich gebs zu, ich verstehe absolut niocht was du willst,
Java:
if (a=1){
    if (b=2) {
        //Mach was
    }
}
 

Stauderr

Grünschnabel
Ein if() in einem if(). So enfach.
Ok, ich gebs zu, ich verstehe absolut niocht was du willst,
Java:
if (a=1){
    if (b=2) {
        //Mach was
    }
}
Das habe ich schon versucht. Wenn die erste Bedingung wahr ist (was sie sein soll), aber die 2. nicht (sondern 3. oder 4. etc)wird die 2. trotzdem mit ausgedruckt. Also wenn ich in der 2. Bedingung sage:
x>=0 || x<5
dann:....
Nun liegt x aber vielleicht in dem Intervall, was in der 3. oder 4. Bedingung abgefragt wird. Allerdings wird jetzt auch immer die 2. mit ausgedruckt
 

Yaslaw

alter Rempler
Moderator
Ah, ich glaube ich verstehe. Wenn 2) war ist soll er trotzdem prüfen on nicht noch eine spätere War ist. Und ggf die Spätere anwenden. Dann mache die if hintereinander. dann hast du nur das Resultat vom letzten passenden.
Java:
Integer result = 0;
Integer x = 5;  //Beispielwert
if(x < 2) result = 1;   //True, result wird auf 1 gesetzt
if(x > 5) result = 2;   //False
if(x == 5) result = 3;  //True, result wird mit 3 überschrieben
if(x == 0) result = 4;  //False
//result ist auf 3
 

Zvoni

Erfahrenes Mitglied
Das habe ich schon versucht. Wenn die erste Bedingung wahr ist (was sie sein soll), aber die 2. nicht (sondern 3. oder 4. etc)wird die 2. trotzdem mit ausgedruckt. Also wenn ich in der 2. Bedingung sage:
x>=0 || x<5
dann:....
Nun liegt x aber vielleicht in dem Intervall, was in der 3. oder 4. Bedingung abgefragt wird. Allerdings wird jetzt auch immer die 2. mit ausgedruckt
Die zweite kann nur „ausgedruckt“ werden wenn sie wahr ist.

hast du Beispieldaten?