Announcement

Collapse
No announcement yet.

C# - hilfe - mein erstes programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# - hilfe - mein erstes programm

    nabend,

    joa.. hab mei erstes programm geschrieben

    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace markus
    {
        class Program
        {
            static void Main(string[] args)
            {
                string vorname;
                string nachname;
                string ende;
                string alter;
                string wechsel;
                string apfel;
                Console.Write("Schreiben Sie Ihren Vornamen: ");
                vorname = Console.ReadLine();
                Console.Write("Hallo " + vorname
                + " (Enter drücken um fortzufahren)");
                Console.ReadLine();
                Console.Write("Schreiben Sie Ihren Nachnamen: ");
                nachname = Console.ReadLine();
                Console.Write("Ihr Nachname lautet: " + nachname
               + " (Enter drücken um fortzufahren)");
                Console.ReadLine();
                Console.Write("Schreiben Sie Ihr Alter: ");
                alter = Console.ReadLine();
                Console.Write("Sie sind: " + alter
                + " Jahre alt"
                + " (Enter drücken um fortzufahren)");
                Console.ReadLine();
                Console.WriteLine("\n Ihr Vorname: " + vorname
                        + "\n Ihr Nachname: " + nachname
                        + "\n Ihr Alter: " + alter
                        + "\n Angaben korrekt?"
                        + "\n (J)a oder (N)ein\n");
                ende = Console.ReadLine();
                switch (ende)
                {
                    case "Ja":
                    case "ja":
                    case "JA":
                    case "J":
                    case "j":
                        Console.Write("Danke Ihnen!");
                        Console.ReadLine();
                        break;
                }
                switch (ende)
                {
                    case "Nein":
                    case "nein":
                    case "NEIN":
                    case "N":
                    case "n":
                        int number = 1;
                        while (number < 2)
                        {
                            Console.WriteLine("Welche Angabe wollen Sie korrigieren?\n"
                            + " Ihren (V)ornamen,"
                            + " Ihren (N)achnamen,"
                            + " Ihr (A)lter\n");
                            wechsel = Console.ReadLine();
                            switch (wechsel)
                            {
                                case "V":
                                case "v":
                                case "Vorname":
                                case "vorname":
                                    Console.WriteLine("Geben Sie Ihren Vornamen ein");
                                    vorname = (Console.ReadLine());
                                    Console.WriteLine("Danke, Ihre Änderung wurde übernommen"
                                    + " Ihr Vorname ist: " + vorname);
                                    Console.ReadLine();
                                    break;
                                case "N":
                                case "n":
                                case "Nachname":
                                case "nachname":
                                    Console.WriteLine("Geben Sie Ihren Nachnamen ein");
                                    nachname = (Console.ReadLine());
                                    Console.WriteLine("Danke, Ihre Änderung wurde übernommen"
                                    + " Ihr Nachname ist: " + nachname);
                                    Console.ReadLine();
                                    break;
                                case "A":
                                case "a":
                                case "Alter":
                                case "alter":
                                    Console.WriteLine("Geben Sie Ihr Alter ein");
                                    alter = Console.ReadLine();
                                    Console.WriteLine("Danke, Ihre Änderung wurde übernommen"
                                    + " Ihr Alter ist: " + alter);
                                    Console.ReadLine();
                                    break;
                                    Console.Write("Möchten Sie eine weitere Änderung vornehmen?"
                                    + " (J)a oder (N)ein");
                                    apfel = Console.ReadLine();
                                    switch (apfel)
                                    {
                                        case "J":
                                        case "j":
                                        case "Ja":
                                        case "ja":
                                        case "JA":
                                            number = number + 1;
                                            {
                                            }
                                            break;
                                        case "N":
                                        case "n":
                                        case "Nein":
                                        case "nein":
                                        case "NEIN":
                                            Console.WriteLine("Danke, alle Änderungen wuren übernommen");
                                            Console.WriteLine("\n Ihr Vorname: " + vorname
                                                               + "\n Ihr Nachname: " + nachname
                                                               + "\n Ihr Alter: " + alter);
                                            break;
                                    }
                                default:
                                    Console.WriteLine("Sie haben eine falsche Eingabe gemacht "
                                    + " (Mögliche Eingaben waren (J)a und (N)ein)"
                                    + " Das Programm wird beendet"
                                    + " ...");
                                    Console.ReadLine();
                                    break;
                            }
                       }
                       break;
                }
            }
        }
    }
    nur leider funzt das mit der while-schleife nicht so x( kurz bevor die schleife anfangen sollte schmiert das programm ab.

    wie richt ich die schleife da richtig ein?
    danke! x)
    Zuletzt editiert von peta; 10.05.2007, 00:10.

  • #2
    Hallo peta,

    Du hast ein "break" an der falschen Stellte gesetzt, sodass der "Änderungszweig" nie erreicht wird.

    Code:
                switch (ende)
                {
                    case "Nein":
                    case "nein":
                    case "NEIN":
                    case "N":
                    case "n":
                    break;
    Diese fettgeschriebene break in der letzten Zeile darf da natürlich nicht stehen, da Du somit die Switch-Anweisung gleich wieder verlässt, bevor Du den eigentlichen Code ausführst. Das break musst Du an folgende Stelle (fettgeschrieben) ans Ende Deines Programms packen:

    Code:
    default:
                                    Console.WriteLine("Sie haben eine falsche Eingabe gemacht "
                                    + " (Mögliche Eingaben waren (J)a und (N)ein)"
                                    + " Das Programm wird beendet"
                                    + " ...");
                                    Console.ReadLine();
                                    break;
                            }
                        }
                        break;
                }
            }
        }
    }
    Außerdem kannst Du die beiden switch (ende)-Anweisungen (von ja und nein) eigentlich auch zu einer zusammenfassen. Außerdem würde ich mal nach irgendwelchen String-Klassen schauen, die Dir jede x-beliebige Schreibeweise in Groß- oder Kleinbuchstaben umwandelt, damit Du nur noch auf "JA/NEIN" oder "ja/nein" testen musst, denn ein "NeIn" fängst Du nicht ab ... :-)

    Beste Grüße,
    Archer

    Comment


    • #3
      nabend,

      erstmal Danke!! ich bin doch ein gutes stück weiter gekommen...
      nur leider funzt das proggy nich so wie es soll..
      die schleife "was möchten sie ändern? (V)orname > usw. diese zeile wiederholt sich ins unendliche, wenn man am anfang eingibt, das die angaben nicht korrekt sind.

      mein editor spuckt das aus:

      das ist 100pro die lösung... ..
      aber keine ahnung wie ich die schleife richtig hin packe .. x(

      hilfe bitte x)

      (Ich hab den code im top-post aktualiesiert)

      Comment


      • #4
        Hallo Peta,

        ich glaube, so kommst Du nicht wirklich weiter (und ich habe auch keine Ahnung, wie ich Dir konkret helfen könnte). Statt dessen möchte ich Dir einige Tipps geben, wie Du Deinen Code sinnvoll überarbeiten könntest:
        1. nummer++; (ersetzt nummer = nummer + 1)
        2. ende als char deklarieren und ReadLine ersetzen durch ReadKey ersetzen; dann brauchst Du Dich immer nur um den Anfangsbuchstaben zu kümmern.
        3. Char.ToUpper() einsetzen (wie schon Archer sagte); dann brauchst Du keinerlei Mehrfach-Fälle zu berücksichtigen.
        4. switch ist nicht sinnvoll, wenn Du nur einen Wert prüfen willst; verwende dann lieber if(ende == 'N').
        5. Versuche einmal, den gesamten Arbeitsablauf in eine einzige Schleife zu packen "while (! endeErreicht)".

        Auf diesem Weg entfallen viele breaks, und der gesamte Code wird viel übersichtlicher. Damit könntest Du den "Knackpunkt" selbst finden (und Du erleichterst auch den Lesern im Forum die Fehlersuche).

        Viel Erfolg! Jürgen

        Nachtrag: Die Fehlermeldung ist doch eindeutig: Alles, was nach einem "break" kommt, wird niemals ausgeführt. Das ist eigentlich kein Fehler, sondern eine Warnung, sollte aber ebenfalls beseitigt werden.
        Zuletzt editiert von Jürgen Thomas; 10.05.2007, 15:31. Reason: Nachtrag

        Comment

        Working...
        X