C++ if else wird nicht ausgeführt?
Wenn eine Bedingung True ist werden die anderen nicht ausgeführt oder beachtet. Ich habe es auch ohne else versucht aber dann kriege ich mehrere Zeilen ausgegeben. Es sollen 2 Datumsangaben miteinander verglichen werden und es darf nur if else benutzt werden.
Code:
2 Antworten
Diverse Sachen:
- Du has M1 nicht deklariert, der Code wird gar nicht erst compiliert.
- Du solltest erst die Monate und dann die Tage (wenn die Monate gleich sind) vergleichen.
- Beim einzelnen Vergleich von Jahr, Monat und Tag solltest du "<" und ">" vergleichen, nicht "<=" und ">=". Da bleibt sonst für den Rest der Abfrage nichts mehr übrig.
Äh... Okay.
- "<" ist "kleiner" 3<7, 6<12, aber es gilt NICHT 12<12.
- "<=" ist "kleiner oder gleich", da gilt dann eben 12<=12.
Wenn du in deinem Code schreibst
if (Y<=Y2) {
} else if (Y2 <= Y) {
} else
{...}
dann wird der Teil "..." nie ausgeführt, weil eine der beiden oberen Bedingungen immer erfüllt ist.
Leider bekomme ich immer noch die selbe Ausgabe :( Wenn ich ein Datum was eigentlich vor dem ersten Datum liegt eingebe, kriegt man das Gegenteil ausgegeben, also, dass das erste Datum vor dem zweiten Datum liegt
if (D == D2 && M == M1 && Y == Y2)
Wo hast du M1 deklariert?
War nur ein Fehler beim einfügen. Das Problem besteht immernoch :(
Weiter unten hast du
else if (Monat1 >= Monat2)
War das auch ein Fehler beim Einfügen?
Ok. Das mit den Operatoren < bzw <= wurde mittlerweile schon genannt. Ich warte mal ab, ob es damit gefixt ist.
Leider bekomme ich immer noch die selbe Ausgabe :( Wenn ich ein Datum was eigentlich vor dem ersten Datum liegt eingebe, kriegt man das Gegenteil ausgegeben, also, dass das erste Datum vor dem zweiten Datum liegt
Jetzt klappt es, hatte was übersehen 😅
Dankeschön. Was ist der Unterschied zwischen <= und < ?