Entwickler-Ecke

C# - Die Sprache - Programm in eine Endlosschleife legen


BIOS-Crasher - Mo 03.12.07 20:24
Titel: Programm in eine Endlosschleife legen
Hallo!
ich bin neu in der C# Gemeinde und hab eine Frage:
Ich habe jetzt einen einfachen recnher geschrieben. nun möchte ich, dass dieser wieder zum Anfang zuückkehrt wenn der Benutzer nach der Rechnung die 1 drückt.Wie stelle ich das am besten an ?

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:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
int a;
            double b;
            double c;
            int d;

            Console.WriteLine("Guten Tag!");
            Console.WriteLine("Dies ist ein Taschenrechner");
            Console.WriteLine("Möchten sie eine Addition(1), Subtraktion(2), Multiplikation(3) oder Division \n (4) durchfühen?");
            a = Convert.ToInt32(Console.ReadLine());
            switch (a)
            {
                case 1:
                    Console.WriteLine(" Addition wird durchgeführt");
                    Console.Write(" Geben sie bitte die erste Zahl ein: ");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.Write(" Und nun bitte die Zweite: ");
                    c = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Das Ergebnis beträgt ");
                    Console.WriteLine(b + c);
                    Console.ReadLine();
                    break;
                case 2:
                    Console.WriteLine("Substraktion wird durchgeführt");
                    Console.Write(" Geben sie bitte die erste Zahl ein: ");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.Write(" Und nun bitte die Zweite: ");
                    c = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Das Ergebnis beträgt ");
                    Console.WriteLine(b - c);
                    Console.ReadLine();
                    break;
                case 3:
                    Console.WriteLine("Multiplikation wird durchgeführt");
                    Console.Write(" Geben sie bitte die erste Zahl ein: ");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.Write(" Und nun bitte die Zweite: ");
                    c = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Das Ergebnis beträgt ");
                    Console.WriteLine(b * c);
                    Console.ReadLine();
                    break;
                case 4:
                    Console.WriteLine("Division wird durchgeführt");
                    Console.Write(" Geben sie bitte die erste Zahl ein: ");
                    b = Convert.ToDouble(Console.ReadLine());
                    Console.Write(" Und nun bitte die Zweite: ");
                    c = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Das Ergebnis beträgt ");
                    Console.WriteLine(b / c);
                    Console.ReadLine();
                    break;
                default:
                    Console.WriteLine(" Ungültige Eingabe");
                    Console.WriteLine("Möchten sie noch etwas berechnen? 1 = Ja 2 = Nein");
                    Console.ReadLine();
                    break;


Chryzler - Mo 03.12.07 21:02

Kann man auf mehrere Arten lösen. Ich würde hier am ehesten noch eine goto-Anweisung benutzen. Das C# Openbook [http://www.galileocomputing.de/openbook/csharp/] könnte weiterhelfen, oder auch MSDN. Oder einfach die Forumsuche benutzen. ;)


Christian S. - Mo 03.12.07 21:05

Goto? :gruebel: Ich bin keiner von den fanatischen Goto-Verteuflern, aber hier sollte eine Schleife eigentlich eine saubere Lösung sein:


C#-Quelltext
1:
2:
3:
do {
/* ... Rechnung ... */
while (benutzerEingabe == '1');