Autor Beitrag
Tredagor
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 04.11.10 11:01 
Hallo,

Wäre jemand so nett und könnte mir sagen, was ich im folgenden kleinen Skript falsch geschrieben habe:

ausblenden 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 user profile iconKha: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 04.11.10 13:19 
Hallo und :welcome:

user profile iconTredagor hat folgendes geschrieben Zum zitierten Posting springen:
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:

user profile iconTredagor hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden 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.

user profile iconTredagor hat folgendes geschrieben Zum zitierten Posting springen:
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:

ausblenden 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;
}

;)