![]() |
Wozu explizite "break;" angabe bei case? (Switch-C
Moin,
soweit ich mich in ein C# Tutorial eingelesen habe, muss jede "case"-Bedingung letzendlich mit einem "break;" enden, da sonst ein Compilerfehler auftritt. Meine Frage ist, wieso muss man das? Wenn es sowieso 100% da stehen muss, wieso tut der Compiler das nicht selbst? Wie bei Delphi? Ok man könnte auch fragen wieso die Banane krumm ist, aber trotzdem interessiert mich das einfach. Hat das nen besonderen Grund? |
Re: Wozu explizite "break;" angabe bei case? (Swit
Es hat den Grund um einen beliebtes Feature/Fehlerquelle von C/C++ zu vermeiden.
Dort kann man durch weglassen von break eine case-Bedingung in die andere "springen" lassen. Da hier break Optional war und es des öfteren Vergessen wurde (bzw. nicht überall gewollt war) hat man bei C# gesagt das Springen in einen andere Case-Bedingung ist nicht mehr erlaubt und man muß (damit man C-Like ist) ein break angeben. Ist also nur dopppelt-gemoppelt aber der C/C++-Programmierer fühlt sich besser aufgehoben. |
Re: Wozu explizite "break;" angabe bei case? (Swit
Zitat:
Code:
So wie mir das
sqitch (c)
{ case 'a': goto case 'b'; case 'b': return; case 'c': doSomething(); break; default: doSomethingElse(); break; } ![]() greetz Mike [Edit]Arghs, tatsächlich n break vergesseh :oops: |
Re: Wozu explizite "break;" angabe bei case? (Swit
Danke Leute :).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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