![]() |
Bereiche bei Case-Label angeben?
Moin Zusammen,
ich stehe gerade vor dem Problem, dass ich bei einem case Label einen Bereich angeben möchte, der für den jeweiligen Zweig Gültigkeit hat, allerdings konnte ich dazu nirgends etwas finden, ich konnte immer nur etwas finden, wie es mit einem Einzelwert geht. In Delphi ist es ja kein Problem, 'a'..'z', und der Bereich der Kleinbuchstaben wird berücksichtigt. Aber wie geht das in C#? :gruebel: |
Re: Bereiche bei Case-Label angeben?
Hallo Christian,
AFAIR gibt es in C (und ich denke in C# ist es nicht viel anders) keine Moeglichkeit, einen Bereich in einen case reinzugeben. Allerdings ist das switch-Statement so aufgebaut, dass es vom ersten zutreffenden case alles ausfuehrt, bis es zu einem break trifft, egal ob dazwischen andere case liegen. Also muesste es so gehn:
Code:
Also waere es evtl. geschickter mit einem
switch (...)
{ case 'a': case 'b': ... case 'z': foo(bar); break; }
Code:
zu arbeiten.
if ((a >= 'a') && (a <= 'z'))
Ich lass mich allerdings gern korrigieren. Greetz alcaeus |
Re: Bereiche bei Case-Label angeben?
Hi.
Alcaeus hat leider Recht... So wie in Delphi geht es leider gar nicht... :-( Aber so:
Code:
entspricht:
select (x) {
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: System.Console.Out.WriteLn("1..10 C#"); break; }
Delphi-Quellcode:
Es ist in diesem Falle gescheiter mit einem
case x of
1..10 : WriteLn('1..10 Delphi'); end;
Code:
zu arbeiten... ;-)
if ((x >= 1) and (x <= 10)) {
System.Console.Out.WriteLn("1..10 C# mit IF"); } //edit : Programmierfehler korrigiert... :wall: //edit2 : Noch einer... :wall: //edit3 : Ich hasse C#... :wall: |
Re: Bereiche bei Case-Label angeben?
Moin Zusammen,
dann danke ich für die Antworten. Die andere Variante (durchgehende Case-Label) kannte ich schon, aber ich konnte mir einfach nicht vorstellen, dass man keine Bereiche angeben kann. (zumal der Entwickler der gleiche wie der von Delphi ist :mrgreen:) Wenigstens lag' es dann nicht an mir, dass ich nichts finden konnte ;-) |
Re: Bereiche bei Case-Label angeben?
Hi.
Zitat:
[edit] Ich berichtige mich: C# ist von Java abgeleitet... :wall: [/edit] |
Re: Bereiche bei Case-Label angeben?
Zitat:
Zitat:
Code:
:zwinker: Stammt aus dem .NET Framework SDK 1.1.
Select Number ' Evaluate Number.
Case 1 To 5 ' Number between 1 and 5, inclusive. Debug.WriteLine("Between 1 and 5") ' The following is the only Case clause that evaluates to True. Case 6, 7, 8 ' Number between 6 and 8. Debug.WriteLine("Between 6 and 8") Case 9 To 10 ' Number is 9 or 10. Debug.WriteLine("Greater than 8") Case Else ' Other values. Debug.WriteLine("Not between 1 and 10") End Select |
Re: Bereiche bei Case-Label angeben?
Hi.
Zitat:
Wie heißt das denn in C#? So? :gruebel:
Code:
case (x) {
1: blabla; break; 2: hicks; 3: hoax; break; 4: 5: ups; break; }; |
Re: Bereiche bei Case-Label angeben?
Zitat:
Greetz alcaeus |
Re: Bereiche bei Case-Label angeben?
Hi.
Bei so vielen Sprachen MUSS einem ja wirr im Kopf werden... :drunken: |
Re: Bereiche bei Case-Label angeben?
Genau, alca! :) Aber select und C/C++? :gruebel: Kenn ich nicht. Ich habe auch in C bloß immer switch benutzt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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