Как заставить мою программу на C# снова запускаться сверху после каждого ее завершения

#c#

#c#

Вопрос:

ребята, я новичок в этом, после попытки создать этот калькулятор я просто хотел узнать, как заставить его снова запуститься, я попытался использовать цикл while, но, к сожалению, я не смог разобраться в этом, пожалуйста, помогите, спасибо.

 using System;  namespace ConsoleApp {  class Program  {  static void Main(string[] args)  {   Console.Write("Enter a number");  double num1 = Convert.ToDouble(Console.ReadLine());   Console.Write("Add an operator");  string op = Console.ReadLine();   Console.Write("Enter another number");  double num2 = Convert.ToDouble(Console.ReadLine());   if (op == " ")  {  Console.WriteLine(num1   num2);  }  else if (op == "-")  {  Console.WriteLine(num1 - num2);  }  else if (op == "/")  {  Console.WriteLine(num1 / num2);  }  else if (op == "*")  {  Console.WriteLine(num1 * num2);  }  else  {  Console.WriteLine("Invalid operator");  }   }     } }  

Комментарии:

1. Внутри Main функции: while (true) { lt;lt;lt;put rest of code heregt;gt;gt; }

Ответ №1:

Чтобы он продолжал работать, вы можете добавить a while(true) , чтобы обернуть свой логический код. это приведет к многократному выполнению блока кода. В случае, если есть условие, при котором вы хотите выйти из цикла, вы можете достичь этого с помощью break

 static void Main(string[] args)  {    while (true){   Console.Write("Enter a number");  double num1 = Convert.ToDouble(Console.ReadLine());   Console.Write("Add an operator");  string op = Console.ReadLine();   Console.Write("Enter another number");  double num2 = Convert.ToDouble(Console.ReadLine());   if (op == " ")  {  Console.WriteLine(num1   num2);  }  else if (op == "-")  {  Console.WriteLine(num1 - num2);  }  else if (op == "/")  {  Console.WriteLine(num1 / num2);  }  else if (op == "*")  {  Console.WriteLine(num1 * num2);  }  else  {  Console.WriteLine("Invalid operator");  }   if (//condition is ok and you want to break out of the loop){  break;  }  }  }  

Комментарии:

1. Возможно, было бы неплохо дать ему возможность покинуть этот бесконечный цикл.

2. Я изменил свой ответ @PhilippeB. — спасибо за комментарий

Ответ №2:

Если это консольное приложение, вы можете сделать что-то подобное в конце своего приложения —

System.Diagnostics.Process.Start("your_prog_name.exe"); Environment.Exit(0);

Он должен завершить предыдущий процесс и запустить его снова. Окно консоли не исчезнет.

Комментарии:

1. Было бы лучше переодеться "your_prog_name.exe" в System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName . Просто потому, что при изменении имени exe-файла все будет продолжать работать.