Autor Thema: wieder mal ein C-Snibble und ne Frage dazu  (Gelesen 17441 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
wieder mal ein C-Snibble und ne Frage dazu
« am: Fr 27.02.2009, 22:04:21 »
Hallöchen, ich optimier gerade wie wild in meinem Lynxopoly rum.

jetzt hab ich versucht manche Ifs in switch umzubauen

Kann mir jemand sagen warum bei

switch(moneychase[nr])
{
case(0):showmoney(30,15,11,price[bei_feld[akt_player]],0);
case(1):showmoney(50,25,14,geld[akt_player],1);
}
immer beide bedingungen ausgegeben werden?

schonmal danke für ne Antwort.
Ich schalt derweil die case ab und mach wieder ifs rein.

Gruß Matthias
Have you played Atari today ?!

afalc060

  • Gast
Re: wieder mal ein C-Snibble und ne Frage dazu
« Antwort #1 am: Fr 27.02.2009, 22:16:06 »
öhm, da fehlen doch  2 break, oder?

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: wieder mal ein C-Snibble und ne Frage dazu
« Antwort #2 am: Fr 27.02.2009, 22:21:49 »
sind die tatsächlichnotwendig??? sollte nicht case(0) eindeutig auf 0 und nichts anderes zeigen???
Sorry ich leb normalerweise in der pascalwelt und da ist prüfung auf x auch nur auf x... erklärt mir das bitte jemand aus der C-Welt

Gruß Matthias
Have you played Atari today ?!

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: wieder mal ein C-Snibble und ne Frage dazu
« Antwort #3 am: Fr 27.02.2009, 22:31:26 »
Nein in C sind sie nicht notwendig. Nur wenn Du für eine Auswahl auch nur genau eine Codefolge haben willst.
Das break ist immer optional. Du als Programmier musst wissen ob es nötig ist oder auch nicht.
Manchmal kann es sinnig sein, das break wegzulassen.

Es geht auch sowas:
switch(c)
{
  case 0:
  case 1:
  case 2:
    blah();
  case 3:
    anderes_blah();
    break;
  case 4:
    noch was anderes();
    break;
}
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

guest2291

  • Gast
Re: wieder mal ein C-Snibble und ne Frage dazu
« Antwort #4 am: Sa 28.02.2009, 01:04:59 »
Um das ganze nochmal ein bisschen zu erklaeren:

Das Programm BEGINNT bei dem case, welches zutrifft und ENDET beim break;

wenn also im oben genannten Beispiel c = 0 (oder auch 1 oder 2), dann wird blah(); und anderes_blah(); ausgefuehrt und am break; zur schliessenden } gesprungen. ist c = 3, dann wird anderes_blah(); ausgefuehrt. ist c = 4, dann wird noch_was_anderes(); ausgefuehrt.
Das ist sehr logisch, wenn man es mal verstanden hat. :)

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: wieder mal ein C-Snibble und ne Frage dazu
« Antwort #5 am: Sa 28.02.2009, 01:14:01 »
ja OK, deswegen keine Klammern.
Da der Anfang mit der Case-Prüfung beginnt und mit break oder ende der switch beendet wird.
Etwas doof.....wenn manns anders gewohnt ist.

Oh mann jetzt kann ich massenweise breaks einfügen - nerv.

Gruß Matthias
Have you played Atari today ?!