AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bereiche bei Case-Label angeben?

Ein Thema von Christian Seehase · begonnen am 22. Apr 2005 · letzter Beitrag vom 22. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#1

Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 13:09
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#?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 13:13
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:
switch (...)
{
  case 'a':
  case 'b':
  ...
  case 'z': foo(bar); break;
}
Also waere es evtl. geschickter mit einem
Code:
if ((a >= 'a') && (a <= 'z'))
zu arbeiten.

Ich lass mich allerdings gern korrigieren.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#3

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 13:15
Hi.

Alcaeus hat leider Recht... So wie in Delphi geht es leider gar nicht...

Aber so:

Code:
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;
}
entspricht:

Delphi-Quellcode:
case x of
  1..10 : WriteLn('1..10 Delphi');
end;
Es ist in diesem Falle gescheiter mit einem

Code:
if ((x >= 1) and (x <= 10)) {
  System.Console.Out.WriteLn("1..10 C# mit IF");
}
zu arbeiten...

//edit : Programmierfehler korrigiert...
//edit2 : Noch einer...
//edit3 : Ich hasse C#...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 13:29
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 )

Wenigstens lag' es dann nicht an mir, dass ich nichts finden konnte
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#5

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 13:35
Hi.

Zitat von Christian Seehase:
(zumal der Entwickler der gleiche wie der von Delphi ist )
C# ist eben (hauptsächlich) von C++ abgeleitet und das ist von C abgeleitet...

[edit] Ich berichtige mich: C# ist von Java abgeleitet... [/edit]
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 15:23
Zitat von Waldteufel:
Alcaeus hat leider Recht... So wie in Delphi geht es leider gar nicht...
Warum "leider"? So arg kompliziert ist das ja nun auch nicht.

Zitat:
//edit : Programmierfehler korrigiert...
//edit2 : Noch einer...
//edit3 : Ich hasse C#...
//edit4 : select? Bringst du da jetzt nicht VB und C# durcheinander? Insbesondere, weil das "select" von VB durchaus wie in Delphi angewendet werden kann:
Code:
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
Stammt aus dem .NET Framework SDK 1.1.
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#7

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 15:27
Hi.

Zitat von MathiasSimmack:
//edit4 : select? Bringst du da jetzt nicht VB und C# durcheinander? Insbesondere, weil das "select" von VB durchaus wie in Delphi angewendet werden kann:
Nein. Ich bringe C / C++ und C# durcheinander...

Wie heißt das denn in C#? So?

Code:
case (x) {
  1: blabla; break;
  2: hicks;
  3: hoax; break;
  4: 5: ups; break;
};
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 15:28
Zitat von Waldteufel:
Wie heißt das denn in C#? So?

Code:
case (x) {
  1: blabla; break;
  2: hicks;
  3: hoax; break;
  4: 5: ups; break;
};
Nein, switch-case, so wie ich es gepostet habe.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#9

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 15:30
Hi.

Bei so vielen Sprachen MUSS einem ja wirr im Kopf werden...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Bereiche bei Case-Label angeben?

  Alt 22. Apr 2005, 15:31
Genau, alca! Aber select und C/C++? Kenn ich nicht. Ich habe auch in C bloß immer switch benutzt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz