Zum Inhalt springen

Mehrfachverzweigung in C# - Fehlermeldung


legolas_3

Empfohlene Beiträge

Nabend Zusammen,

als C# Neuling brauch ich mal eure Hilfe, denn ich bekomme ne Fehlermeldung über einen syntaktischen Fehler, weiß aber nicht, wie ich ihn beheben kann :confused:

Ich habe folgende Mehrfachverzweigung:


			if (i_geb_tag <= 28 & i_geb_monat <= 2)

				{

					if (i_geb_jahr % 4 != 0 & i_geb_jahr % 400 != 0)

						{


						};

					else

						{

						alter = alter + 1;

						};

				};


Mein Compiler meldet folgenden Fehler:

Ungültiger Ausdruck 'else'

Kann mir jemand helfen ???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, wegen dem falschen Forum...:hells:

Kein Problem, wird gleich verschoben :)

Übrigens, falls das in deinem Code eine Schaltjahrprüfung sein soll, ist sie falsch.

Wenn eine Zahl nicht durch 4 teilbar ist, ist sie immer auch nicht durch 400 teilbar, die zweite Bedingung ist in der ersten enthalten.

Nichtteilbarkeit durch 4 ist auch keine notwendige Bedingung für "kein Schaltjahr". 1900 ist durch 4 teilbar, war aber trotzdem kein Schaltjahr. Die Teilbarkeit durch 100 muss mit in den Ausdruck.

P.S.: Verschoben -> Delphi/RPG+CL/C#/Sonstige

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmmm...schade!

Ich hab versucht das ganze ein wenig mit Hilfe einer Entscheidungstabelle zu vereinfachen! Ich könnte das ja alles in einfache If-Abfragen aufdröseln...

also:

Alle 4 Jahre ist es ein Schaltjahr

Alle 400 Jahre auch...

Und alle 100 Jahre nicht...

Demensprechend alle 3 Bedingungen nacheinander abfragen!

Wie sehe denn eine vereinfachte IF-Abfrage aus???

Link zu diesem Kommentar
Auf anderen Seiten teilen

theoretisch müsstest du nur den ausdruck jahr%4==0&&(jahr%100||jahr%400==0) evaluieren, der entweder 1 oder 0 liefert, je nachdem ob jahr ein schaltjahr ist oder nicht.

ob c# diese vereinfachte c-syntax allerdings unterstützt weiss ich nicht.

s'Amstel

Also ich weiß nicht recht, ob das funktionieren würde. So wie ich die Schaltjahr regeln kenne, ist alle 100 Jahre KEIN Schaltjahr. Alle 4 Jahre und alle 400 Jahre doch!

Von daher denk ich, dass in der Teil des Ausdruckes mit dem Modulo 100 negiert werden muss...

Also eher so!

jahr%4==0&&(jahr%100!=0||jahr%400==0)

Was meint ihr?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...