1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

C++ IF-Bedingung wo sind da die Unterschiede

Discussion in 'Programmieren' started by JojoKoester, Feb 1, 2011.

Thread Status:
Not open for further replies.
  1. JojoKoester

    JojoKoester Halbes Megabyte

    Hallo zusammen,
    ich bin zurzeit am C++ lernen und habe folgendes Problem!
    Wo sind hier die Unterschiede??
    Code:
        if((jahr % 4 == 0) || (jahr % 400 == 0)) {
                schalttag = true;
        }
    zu diesem hier
    Code:
        if((jahr % 4 == 0) || (jahr % 400)) {
                schalttag = true;
        }
     
  2. daboom

    daboom Megabyte

    In C++ kann jeder integrale Wert (also prinzipiell alles, was mit Ganzzahlen zu tun hat) oder auch Pointer als Bedingung verwendet werden. Dabei wird der Wert 0 immer als false und alles andere immer als true ausgewertet.

    Damit ist

    Code:
    (jahr % 400)
    als Bedingung äquivalent zu

    Code:
    (jahr % 400 != 0)
    Eines der größten Mankos an C++, wie ich finde, da es eine unheimliche Fehlerquelle darstellt, wenn man sich mal vertippt.

    Ich empfehle, sowas immer zu vermeiden, indem immer explizite Vergleiche benutzt werden.
     
  3. Hascheff

    Hascheff Moderator

    Mit der C++-Syntax kenne ich mich nicht so aus, aber inhaltlich ist die Abfrage falsch.

    Schaltjahr ist, wenn (Jahr durch 4 teilbar und nicht durch 100 teilbar) oder (Jahr durch 400 teilbar) ist.
     
Thread Status:
Not open for further replies.

Share This Page