C++ if else wird nicht ausgeführt?

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.
HeinzKetchup934 
Fragesteller
 15.10.2022, 22:04

Dankeschön. Was ist der Unterschied zwischen <= und < ?

0
ShimaG  15.10.2022, 22:06
@HeinzKetchup934

Ä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.

2
HeinzKetchup934 
Fragesteller
 15.10.2022, 22:13
@ShimaG

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

0
if (D == D2 && M == M1 && Y == Y2)

Wo hast du M1 deklariert?

HeinzKetchup934 
Fragesteller
 15.10.2022, 21:58

War nur ein Fehler beim einfügen. Das Problem besteht immernoch :(

0
DonkeyShot  15.10.2022, 22:08
@HeinzKetchup934

Ok. Das mit den Operatoren < bzw <= wurde mittlerweile schon genannt. Ich warte mal ab, ob es damit gefixt ist.

0
HeinzKetchup934 
Fragesteller
 15.10.2022, 22:13
@DonkeyShot

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

0