Hallo und
Tredagor hat folgendes geschrieben : |
Wäre jemand so nett und könnte mir sagen, was ich im folgenden kleinen Skript falsch geschrieben habe: |
Auf die Schnelle fällt mir auf, dass du ein paar geschweifte Klammern vergessen hast:
Tredagor hat folgendes geschrieben : |
C#-Quelltext 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| /* ... */ if (name == "j") { Console.WriteLine("Na dann sind Sie aber schon ziemlich Blöd.../n Sie werden aber wenigstens noch wissen, wie der Entdecker von Amerika heißt? (j / n)"); name = Console.ReadLine(); if (name == "Cristoph Columbus") Console.WriteLine("Na, also klappt doch"); else Console.WriteLine("Sie sind einfach nur dumm, die Antwort lautet: Cristoph Columbus");
} else if (name == "n") { Console.WriteLine("Warum können Sie mir dann nicht den Namen des visionären Wissenschaftler sagen?"); name = Console.ReadLine(); Console.WriteLine("Also weil Sie " + name + "Na gut, ich mache eine Ausnahme, aber beim nächste mal, möchte ich Fakten hören."); } break; | |
Denn deiner Einrückung nach ist zu schließen, dass diese Blöcke zusammengefasst werden sollen.
Tredagor hat folgendes geschrieben : |
Klar kann man das, über das normale IF-Verfahren bewerkstelligen aber ich möchte, dies auch mit dem Switch-Verfahren proben |
Du hast dir aber eine sehr ungewöhnliche Anwendung ausgesucht, denn dein
switch hat nur einen
case-Zweig. Normalerweise verwendet man dieses Konstrukt, wenn man eine Variable auf verschiedene Inhalte testen will. Zum Beispiel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| switch (name) { case 'Albert Einstein': Console.WriteLine("Du bist Physiker!"); break;
case 'Marie Curie': Console.WriteLine("Du bist Chemiker!"); break;
case 'Galileo Galilei ': Console.WriteLine("Du bist Astronom!"); break;
case 'Ich': Console.WriteLine("Du bist Größenwahnsinnig!"); break;
default: Console.WriteLine("Du bist Marsmensch, denn den Namen kenne ich nicht."); break; } |
