C-Code nicht klar

Gast #40570
Lesenswert?

Hi,

ich bin mit der Sprache C noch nicht ganz vertraut und habe mir das
Buch
"C für Mikrocontroller" gekauft. Dort ist ein Beispiel-Quelltext
drin,
welchen ich nicht ganz kapiere.

int GetMax( int y, int z)
{   if (y>z) return y;
    return z;
}

Logisch, daß y rückgegeben wird, wenn y größer z ist.
Aber wann wird die dritte Zeile (return z) ausgeführt?
Fehlt da nicht ein else?

Armin
Gast #40571
Lesenswert?

Nein, denn wenn y<z, so wird 'return y;' nicht ausgefuehrt. Ueberleg
mal was ein if sonst ueberhaupt bringen wuerde.

Vielleicht fehlen dir da irgendwelche Klammern, das ganze kann man
natuerlich auch als

if (y>z){
  return y;
}
return z;

schreiben. Das macht hier aber nicht wirklich sinn, da bei positivem
vergleich immer die Anweisung nach dem if ausgefuehrt wird. Die
Klammern bilden nur einen block, effektiv ist das dann auch nur eine
Anweisung.
Das else dass dir abgeht waere z.b hier von noeten:

int GetMax( int y, int z)
{
  int max;
  if (y>z) max = y;
  else max = z;

  return max;
}

Uebrigens, es gibt excellente Buecher ueber C, auch online material ist
(in massen) zu haben, z.b http://www.cprogramming.com

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren