#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-файла все будет продолжать работать.