AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

switch, break, case c++

Ein Thema von EWeiss · begonnen am 27. Aug 2017 · letzter Beitrag vom 28. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2   
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: switch, break, case c++

  Alt 27. Aug 2017, 08:54
Soweit ich C kenne, wird jeder Case Zweig durchlaufen, außer du machst am Ende jedes Zweiges das break. Das ist ja der große Unterschied zu Delphi.
Das break muss dann natürlich innerhalb der Klammer sein.
Ich muss das mal Code mäßig sehen.

Manche machen es so.
Code:
case x:
{
  // Anweisung
}
break;
andere machen es so
Code:
case x:
{
  // Anweisung
  break;
}
dann wieder so.
Code:
case x:
  // Anweisung
  break;
da blickt keiner mehr durch.

gruss
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.652 Beiträge
 
Delphi 12 Athens
 
#2

AW: switch, break, case c++

  Alt 27. Aug 2017, 08:56

andere machen es so
Code:
case x:
{
  // Anweisung
  break;
}
Ich meine, dass es so sein sollte.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:00

andere machen es so
Code:
case x:
{
  // Anweisung
  break;
}
Ich meine, dass es so sein sollte.
Mein Problem ist... Annahmen nutzen mir nichts denn es würde auch so gehen.
Code:
case x:
   // Anweisung
   break;
Warum einmal so dann wieder so.

Gibt es da keine ganz klare Definition an der man sich halten kann (muss) ?
Letztendlich wird man für blöd gehalten wenn man nicht mal in der Lage ist ein break; korrekt zu setzen.

gruss

Geändert von EWeiss (27. Aug 2017 um 09:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#4

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:01
Ohne Gewähr:
Code:
switch (Irgendwas){
  case Dings:
    MachWas();
    break;
  case Bums:
    MachWasAnderes();
    break;
  case Wuppdi:
    if (Bedingung){
      TollerCode();
    }
    break;
  default:
    WasWoandersNichtPasst();
}
BTW: https://msdn.microsoft.com/de-de/library/k0t5wee3.aspx
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:05
Genau hier.

Code:
   case 'a' :
       { 
       // Declaration of szChEntered OK. Local scope.
       char szChEntered[] = "Character entered was: ";
       cout << szChEntered << "a\n";
       } 
       break;
 
   case 'b' :
       // Value of szChEntered undefined.
       cout << szChEntered << "b\n";
       break;
 
   default:
       // Value of szChEntered undefined.
       cout << szChEntered << "neither a nor b\n";
       break;
   }
einmal klammer nach Case einmal keine..
welcher sinn steckt dahinter.

Code:
  case Dings:
     MachWas();
     break;
  case Dings:
     MachWas();
     {
         MachWasViel?();
         Vielezeilen
         break; << break hier
     }
     break; << oder break hier
gruss

Geändert von EWeiss (27. Aug 2017 um 09:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#6

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:08
Ganz ehrlich: ich hab keine Ahnung, dafür reicht mein bescheidenes C/C++ nicht aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:11
Ganz ehrlich: ich hab keine Ahnung, dafür reicht mein bescheidenes C/C++ nicht aus.
Deshalb stelle ich ja die Frage hier
Man steht da wie ein blöder weil niemand einem sagen kann wie es nun korrekt ist.

Wie gesagt Annahmen ohne konkreten beleg nutzen mir nichts.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#8

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:13
Ich persönlich schreibe im Zweifel den Code einfach so, wie ich denke, dass es stimmen müsste, und verfolge den Ablauf dann schrittweise im Debugger. Dann bin ich auch nicht von Annahmen anderer abhängig
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: switch, break, case c++

  Alt 27. Aug 2017, 09:18
Ich persönlich schreibe im Zweifel den Code einfach so, wie ich denke, dass es stimmen müsste, und verfolge den Ablauf dann schrittweise im Debugger. Dann bin ich auch nicht von Annahmen anderer abhängig
In Delphi kannst du so etwas auch nicht machen.

Delphi-Quellcode:
WM_COMMAND:
  bla;
  bla, bla;
  bla, bla, bla;
das hingegen schon.
Delphi-Quellcode:
WM_COMMAND:
  begin
    bla;
    bla, bla;
    bla, bla, bla;
  end;
Der eine macht es so der andere wieder SO..
Wenn man es dann nicht SO macht wie der andere es macht ist man der Dumme.
Es muss doch ganz klare Richtlinien geben was nun korrekt ist.

Mit so etwas wird man dann darauf hingewiesen..
Zitat:
Also your SWITCH CASE looks very strange to me because of the extra braces.
Nur warum es seltsam aussieht kann niemand erklären weil jeder macht was er will.

EDIT:
Nochmal
Code:
   case 'a' :
        { 
        // Declaration of szChEntered OK. Local scope.
        char szChEntered[] = "Character entered was: ";
        cout << szChEntered << "a\n";
        } 
        break;
   
    case 'b' :
        // Value of szChEntered undefined.
        cout << szChEntered << "b\n";
        break;
   
    default:
        // Value of szChEntered undefined.
        cout << szChEntered << "neither a nor b\n";
        break;
    }

bei case a..
nach Case a Klammer (warum? )
nach Case a abschließende klammer dann break.. so wie ich es mache aber angeblich nicht richtig. (warum? )
Case b keine Klammer (warum? )

was für ein mist!
Im Moment ohne sinn und zweck.. das ganze.

wieder andere machen es so. Berechtigte Frage! Was soll der Quatsch..
Code:
 case 'a' :
        { 
        // Declaration of szChEntered OK. Local scope.
        char szChEntered[] = "Character entered was: ";
        cout << szChEntered << "a\n";
        break;
        }
Das einzige was mir einleuchtet ist das wenn ich eine Klammer setze das diese auch wieder geschlossen werden muss.
Also was ist in meiner WinProc bzg. Switch, break, case falsch? Bitte keine Annahmen sondern begründet!

gruss

Geändert von EWeiss (27. Aug 2017 um 09:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#10

AW: switch, break, case c++

  Alt 27. Aug 2017, 10:02
Im Grunde gehört es wohl eher in einen der CASE/SWITCH-Blöcke, bzw. an deren Ende.
Aber da in C++ ein CASE/SWITCH nur eine Liste von "Einspungspunkten" ist, würde demnach auch alles verarbeitet, was zwischen diesen CASE-Blöcken liegt, wenn man vorher nicht raus springt.
Ich hätte nur erwartet, dass die Syntax von C++ eine Deklaration zwischen den Blöcken verbietet.

Delphi hat dagegen ein implizites BRAKE an jedem CASE-Block und man springt automatisch wieder raus, nach Abarbeitung des einen angspungenen Blocks.


Quatsch:
Damit der Highlighter dir das ENDE des Blocks verrät.
Stell dir SWITCH wie ganz viele GOTO vor. Da brachst du auch kein BEGIN/END dazischen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Aug 2017 um 10:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz