Entwickler-Ecke
C# - Die Sprache - C# Switch Bedingung
Tredagor - Do 04.11.10 11:01
Titel: C# Switch Bedingung
Hallo,
Wäre jemand so nett und könnte mir sagen, was ich im folgenden kleinen Skript falsch geschrieben habe:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| string name; Console.WriteLine("Bitte nennen einen Namen von einem visionären Wissenschaftler: ");
switch (name) { case "Albert Einstein": Console.WriteLine("Sie sind ja intelligent"); break; default: Console.WriteLine("Sie haben wahrscheinlich in Geschichte nie aufgepasst, habe ich Recht? (j / n): "); name = Console.ReadLine(); 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;
} Console.ReadKey(); |
Also, dass soll im cmd Fenster ausgegeben werden, sprich Konsolenanwendung. Klar kann man das, über das normale IF-Verfahren bewerkstelligen aber ich möchte, dies auch mit dem Switch-Verfahren proben und scheibar, zeigt er mir Fehler bei den else Syntaxen.
Moderiert von
Kha: C#-Tags hinzugefügt
Th69 - Do 04.11.10 13:12
Bitte editiere deinen Beitrag noch mal und packe den Code in die entsprechenden CodeTags: [ cs ] ... [ /cs ] (ohne die Leerzeichen).
Yogu - Do 04.11.10 13:19
Hallo und :welcome:
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; } |
;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!