Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
switch-case

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
thomas
Gast





BeitragVerfasst am: 20. Jul 2000 12:07   Titel: switch-case

Ich möchte folgendes Problem in einem C-Konsolen-Programm lösen:
Der Benutzer wird aufgefordert, das Symbol, die Ordnungszahl, die englische Bezeichnung oder die deutsche Bezeichnung des von ihm gesuchten chemischen Elements einzugeben. Wenn die Suche erfolgreich ist, das heisst das gesuchte Element existiert tatsächlich, sollten mehr Informationen zu dem Element
angezeigt werden. Z.B. der Benutzer gibt 1, h, H, Wasserstoff, wasserstoff, Hydrogen oder hydrogen ein und es erscheinen nähere Informationen zum chemischen Element Wasserstoff, wie Atommasse, Dichte, Schmelzpunkt etc.
Nun zu meiner Frage: Wie löse ich dieses Problem am einfachsten? Am besten wäre etwas in der Art der switch-case-Konstruktion. Leider kann man die nur so gestallten:

switch (expression) {
case expression1:
statement1;
case expression2:
statement2;
.
.
.
default:
statement-default;

Oder ist etwa auch sowas möglich?:

switch (expression) {
case expression1, expression2:
statement1;
case expression 3, expression4:
statement3;
.
.
.
default:
statement-default;

Dass man die Ausdrücke in case ... nicht mit Kommatas abtrennen kann weiss ich bereits, aber ob es anders geht ist mir nicht bekannt. Ich konnte auch in keinem meiner C-Bücher etwas genaueres darüber finden.
Oder kann man diese Problem auch anders lösen?
Vielen Dank für Eure Hilfe.
 

Jochen
Gast





BeitragVerfasst am: 20. Jul 2000 13:36   Titel: Re: switch-case

Einfach. Beispielcode folgt:
code:

switch (expression) {
case expression1:
case expression2:
statement1;

case expression3:
case expression4:
statement3;
.
.
.
default:
statement-default;
} /* end switch */



Aber denk dran: expression darf nur einen abzählbaren Datentyp haben (long, int, short, char).
 

thomas
Gast





BeitragVerfasst am: 20. Jul 2000 21:19   Titel: Re: switch-case

Vielen Dank für die prompte Hilfe!
Ich werds gleich mal ausprobieren.
 

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 21. Jul 2000 10:08   Titel: Re: switch-case

Hi,

ganz so mächtig ist C nun auch wieder nicht. Nach den case-Statements darf keine beliebige, sondern nur eine konstante Expression stehen.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Jürgen Wolf
Gast





BeitragVerfasst am: 07. Aug 2000 0:14   Titel: Re: switch-case

Doch C ist schon so määäääccchtig :

switch(x)
{
case 1 : case 'h' : case 'H' : function(Wasserstofferklärung);
case 'x' : case 'y' : case 'z' : function(Was auch immer);
..........
..........
default : printf("Unbekannter Stoff
");
}

cu
ANSII-C

Wolf-F@t-online.de
 

Jochen
Gast





BeitragVerfasst am: 07. Aug 2000 7:57   Titel: Re: switch-case

Hm, Jürgen, hjb hat trotzdem recht: Auch Du verwendest nur konstante Ausdrücke wie 1 oder 'h' in den case-statements.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy