1

So, I have made a simple calculator in C# (using vscode) and I'm experiencing a problem where if you calculated something, you need to restart the program to redo a calculation or calculate a new thing. But I only just want it to just run for as long as I want and not need to restart the program every calculation, I've tried to try while loops but did not think that would work. I only need it to just do calculations as much as I want.

Code (Does not matter that much):

using System;

namespace Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("What Do You Want To Do?");
            Console.Title = "Calculator";
            string response = Console.ReadLine();
            if (response.Contains("div") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Insert another number:");
                double num1 = Convert.ToDouble(Console.ReadLine());
                double result = num0 / num1;
                Console.WriteLine(result);
                ;
            }
            else if (response.Contains("multi") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Insert another number:");
                double num1 = Convert.ToDouble(Console.ReadLine());
                double result = num0 * num1;
                Console.WriteLine(result);
            }
            else if (response.Contains("add") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Insert another number:");
                double num1 = Convert.ToDouble(Console.ReadLine());
                double result = num0 + num1;
                Console.WriteLine(result);
            }
            else if (response.Contains("sub") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Insert another number:");
                double num1 = Convert.ToDouble(Console.ReadLine());
                double result = num0 - num1;
                Console.WriteLine(result);
            }
            else if (response.Contains("pow") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Insert another number:");
                double num1 = Convert.ToDouble(Console.ReadLine());
                double result = Math.Pow(num0, num1);
                Console.WriteLine(result);
            }
            else if (response.Contains("sqrt") == true)
            {
                Console.WriteLine("Insert a number:");
                double num0 = Convert.ToDouble(Console.ReadLine());
                double result = Math.Sqrt(num0);
                Console.WriteLine(result);
            }
            Console.ReadKey();
        }
    }
}

Any Help Appreciated.

Baselistic
  • 57
  • 1
  • 1
  • 8

2 Answers2

0

You can use while loop similar to what you were thinking...

using System;
    
    namespace Calculator
    {
        class Program
        {
            static void Main(string[] args)
            {
                while (true)
                {
                    #region Existing Code
                    ...
                    #endregion
                }
            }
        }
    }
Ashish Dehariya
  • 216
  • 3
  • 10
-1

You can create a function with all your calculation code and do something like this :

 static void Main() {
     do {
       Calculate();

       Console.WriteLine("Would you like to repeat? Y/N");
     }
     while (char.ToUpper(Console.ReadKey().KeyChar) == 'y');

     Console.WriteLine("Press any key to exit.");
     Console.ReadKey();
   }  
user1187282
  • 1,137
  • 4
  • 14
  • 23