none
Do..While Schleifen Taschenrechner Problem RRS feed

  • Frage

  • Hi, Ich habe ein Problem bei meinem Taschrechner. Er soll nach jeder eingegebener Zahl nachfragen ob ich noch eine Zahl eingeben will und welche Rechenart ich nehmen will.

    Leider gibt es ein paar Probleme bei der Struktur meines Programmes. Hoffentlich kann mir jemand helfen.

    double Zahl;
                char weiter;
                double erg = 0;
                char wahl;

              
                do

                {
                    Console.WriteLine("Geben sie ihre Zahlen ein");
                  
                    Zahl = Convert.ToDouble(Console.ReadLine());
                  
                    Console.WriteLine("Möchten sie noch eine Zahl eingeben [j,n]?\n");
                 
                 
                    weiter = Convert.ToChar(Console.ReadLine());
                    Console.WriteLine("a.....Addieren");
                    Console.WriteLine("s.....Subtaktion");
                    Console.WriteLine("m.....Multiplikation");
                    Console.WriteLine("d.....Division");
                   
                    wahl = Convert.ToChar(Console.ReadLine());

                    switch (wahl)
                    {
                        case 'a':
                            erg += Zahl;
                            break;
                        case 's':
                            erg -= Zahl;
                            break;
                        case 'm':
                            erg *= Zahl;
                            break;
                        case 'd':
                            erg /= Zahl;
                            break;

                    }
                } while (weiter == 'j');
                Console.WriteLine("Das Ergebnis lautet{0,5}\n", erg);
                Console.ReadKey();

     

     

    Sonntag, 13. März 2011 14:51

Antworten

  • Also ich würde zunächst eine "Start"-Zahl außerhalb der Schleife
    eingeben und dann immer weiter fragen, ob noch eine weitere Zahl
    gewünscht ist, ungefähr so:


    
        static void ConsolenRechner()
        {
    
          double Zahl;
          char weiter;
          double erg = 0;
          char wahl;
    
    
          Console.WriteLine("Geben sie ihre erste Zahl ein");
          var input = Console.ReadLine();
          while (!double.TryParse(input, out Zahl))
          {
            Console.WriteLine("Ungültige Eingabe: {0}, bitte wiederholen", input);
            input = Console.ReadLine();
          }
          erg = Zahl;
    
          while (true)
          {
    
            Console.WriteLine("Möchten sie noch eine weitere Zahl eingeben [j,n]?");
            weiter = Console.ReadKey(true).KeyChar;
            if (weiter != 'j')
              break;
    
            Console.WriteLine("Geben sie eine weitere Zahl ein");
            input = Console.ReadLine();
            while (!double.TryParse(input, out Zahl))
            {
              Console.WriteLine("Ungültige Eingabe: {0}, bitte wiederholen", input);
              input = Console.ReadLine();
            }
    
    
            Console.WriteLine("a.....Addieren");
            Console.WriteLine("s.....Subtaktion");
            Console.WriteLine("m.....Multiplikation");
            Console.WriteLine("d.....Division");
    
            wahl = Console.ReadKey(true).KeyChar;
    
            switch (wahl)
            {
              case 'a':
                erg += Zahl;
                break;
              case 's':
                erg -= Zahl;
                break;
              case 'm':
                erg *= Zahl;
                break;
              case 'd':
                erg /= Zahl;
                break;
    
            }
          }
          Console.Write("\nDas Ergebnis lautet: {0,5}\n", erg);
          Console.ReadKey();
    
        }
    


    Christoph
    Sonntag, 13. März 2011 18:31