c#在双打/控制台

时间:2017-01-14 04:12:17

标签: c#

我是编程和C#的新手,我找不到任何解决方案。

我做了一个小型计算器只是为了尝试一些基础知识(我知道这不是一个干净的代码)

因为我有德国设置和utf-8(我认为)我必须写1.5而不是1.5

在我的计算器中,如果我输入1.5,它就不会出错。

我希望能够使用这两种方法,因此我可以输入1.5或1,5

也许有人可以为假人解释^^

寻找颜色,但那是我的下一个问题。有什么方法我可以只改变一行的颜色,并在下一行使用标准的颜色而不像我一样将它设置为白色?

感谢您的帮助和对我的英语表示遗憾 - 以下是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;


namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {


            double zahl1, zahl2, ergebnis = 0;
            string operand;

            while (true)
            {
                Console.ForegroundColor = ConsoleColor.White;
                Zahl1:
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("1. Zahl:");
                Console.ForegroundColor = ConsoleColor.White;
                string eingabe = Console.ReadLine();
                try
                {
                    zahl1 = double.Parse(eingabe);
                }

                catch (FormatException)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Eingabe ungültig");
                    Console.ForegroundColor = ConsoleColor.White;
                    goto Zahl1;
                }

                Operand:
                Console.ForegroundColor = ConsoleColor.Green;            
                Console.WriteLine("Operand wählen [ ( + ), ( - ), ( / oder : ), ( * oder x ) ]");
                Console.ForegroundColor = ConsoleColor.White;
                operand = Console.ReadLine();
                if(operand == "+" || operand == "-" || operand == "X" || operand == "x" || operand == "*" || operand == "/" || operand == ":")
                {

                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Kein gültiger Operand");
                    Console.ForegroundColor = ConsoleColor.White;
                    goto Operand;
                }

                Zahl2:
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("2. Zahl:");
                Console.ForegroundColor = ConsoleColor.White;
                string eingabe2 = Console.ReadLine();
                try
                {
                    zahl2 = double.Parse(eingabe2);
                }

                catch (FormatException)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Eingabe ungültig");
                    Console.ForegroundColor = ConsoleColor.White;
                    goto Zahl2;
                }



                if (operand == "+")
                {
                    ergebnis = zahl1 + zahl2;
                }

                else if (operand == "-")
                {
                    ergebnis = zahl1 - zahl2;
                }

                else if (operand == "/" || operand == ":")
                {
                    ergebnis = zahl1 / zahl2;
                }

                else if (operand == "*" || operand.ToUpper() == "X")
                {
                    ergebnis = zahl1 * zahl2;
                }

                // Sollte nie erreicht werden
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Kein gültiger Operand - Ergebnis = 0 ¯\\_(-.-)_/¯");
                    Console.ForegroundColor = ConsoleColor.White;
                }

                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("Ergebnis: " + ergebnis);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Neue Rechnung? (y || j) Oder Beenden? (beliebige Taste außer y und j)");
                Console.ForegroundColor = ConsoleColor.White;

                ConsoleKeyInfo eingabekey = Console.ReadKey();

                if (eingabekey.Key == ConsoleKey.Y || eingabekey.Key == ConsoleKey.J)
                {
                    Console.Clear();
                    continue;
                }

                else
                {
                    Environment.Exit(0);
                }

            }




        }
    }
}

0 个答案:

没有答案