Hallo Daniel, On 13 Jun 2003 at 15:07, Daniel Feist wrote:
Hallo,
In C bin ich noch ein ziemlicher Anfänger und deshalb stelle ich hier eine für die meisten unter euch "simple" Frage - es handelt sich um die switch-Verzweigung :
include
int main() { int a; printf("Bitte eine Zahl zwischen 1 und 5 eingeben: "); scanf("%d", &a);
switch (a){ case 1: printf("Das war eins \n"); break; case 2: printf("Das war zwei \n"); break; case 3: printf("Das war drei \n"); break; case 4: printf("Das war vier \n"); break; case 5: printf("Das war fünf \n"); break; default: printf("Falsche Eingabe\n"); } return 0; }
Ich verstehe nicht, wie der Schalter switch herausfinden kann, welchen Fall er nehmen muss - wenn es zum Beispiel andere Zeichen sind - wie +,-,*,/ oder so - wie macht er es dann? switch geht ja nach folgendem Muster vor : Ausdruck(a) == Ausdruck1 dann wird die passende Anweisung ausgeführt. Mit Zahlen ist es ja klar - aber wie geht es mit anderen ASCII-Zeichen? Ich würde mich über zahlreiche Hilfestellungen rund um switch freuen! Vielen Dank!
mit anderen Zeichen geht es so nicht direkt, da switch nur int als Parameter akzeptiert. Im beschriebenen Fall kannst du den scanf so umfummeln, dass a vom Typ char ist und den ASCII-Code des eingegeben Zeichens enthält (ich weiss grad nicht, wie das geht). Dann könntest du case-Anweisungen im Stile switch(a) // implizite Typumwandlung char->int { case 'a': ... case '2': ... case '+': ... } verwenden. Grüße Stefan