В общем вся проблема это деление на ноль. Я сделал так чтобы не выдавало исключение с помощью try,catch но в чем делема, мне не понятно как сделать чтобы код возвращался на тот момент где пользователь вводил число на которое делить (второе число), и пропускался момент где он выбирал действие. Заранее спасибо! (совсем зеленый, надеюсь на понимание) Мой говно-код using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace qweqwe { class Program { static int Sum(int a, int b) { return a + b; } static int dif(int a, int b) { return a - b; } static int prod(int a, int b) { return a * b; } static int quot(int a, int b) { return a / b; } static void Main(string[] args) { int num1; while (true) { try { Console.Write("Введите Первое Число: "); num1 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } } int num2; while(true) { while (true) { try { Console.Write("Введите Второе Число: "); num2 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } } string action; while (true) { try { Console.Write("Выберите Действие: (+,-,/,*)"); action = Console.ReadLine(); break; } catch { Console.WriteLine("Такого Действия Нету!"); } } int result; if (action == "+") { result = Sum(num1, num2); Console.WriteLine("Результат: " + result); } if (action == "-") { result = dif(num1, num2); Console.WriteLine("Результат: " + result); } if (action == "*") { result = prod(num1, num2); Console.WriteLine("Результат: " + result); } while (true) { try { if (action == "/") { result = quot(num1, num2); Console.WriteLine("Результат: " + result); break; } } catch { Console.WriteLine("На Ноль Делить Нельзя ! "); } } } } } } Код using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace qweqwe { class Program { static int Sum(int a, int b) { return a + b; } static int dif(int a, int b) { return a - b; } static int prod(int a, int b) { return a * b; } static int quot(int a, int b) { return a / b; } static void Main(string[] args) { int num1; while (true) { try { Console.Write("Введите Первое Число: "); num1 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } } int num2; while(true) { while (true) { try { Console.Write("Введите Второе Число: "); num2 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } } string action; while (true) { try { Console.Write("Выберите Действие: (+,-,/,*)"); action = Console.ReadLine(); break; } catch { Console.WriteLine("Такого Действия Нету!"); } } int result; if (action == "+") { result = Sum(num1, num2); Console.WriteLine("Результат: " + result); } if (action == "-") { result = dif(num1, num2); Console.WriteLine("Результат: " + result); } if (action == "*") { result = prod(num1, num2); Console.WriteLine("Результат: " + result); } while (true) { try { if (action == "/") { result = quot(num1, num2); Console.WriteLine("Результат: " + result); break; } } catch { Console.WriteLine("На Ноль Делить Нельзя ! "); } } } } } }
Вот вроде то, что тебе нужно. using System; namespace CalcFix { class Program { static int Sum(int a, int b) { return a + b; } static int dif(int a, int b) { return a - b; } static int prod(int a, int b) { return a * b; } static int quot(int a, int b) { return a / b; } static void Main(string[] args) { int num1; int num2; string action = ""; while (true) try { Console.Write("Введите Первое Число: "); num1 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } while (true) { while (true) try { Console.Write("Введите Второе Число: "); num2 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } if (string.IsNullOrEmpty(action)) while (true) try { Console.Write("Выберите Действие: (+,-,/,*)"); action = Console.ReadLine(); break; } catch { Console.WriteLine("Такого Действия Нету!"); } if (action == "+") Console.WriteLine("Результат: " + Sum(num1, num2)); if (action == "-") Console.WriteLine("Результат: " + dif(num1, num2)); if (action == "*") Console.WriteLine("Результат: " + prod(num1, num2)); if (action == "/") if (num2 != 0) Console.WriteLine("Результат: " + quot(num1, num2)); else Console.WriteLine("На Ноль Делить Нельзя ! "); } } } } Код using System; namespace CalcFix { class Program { static int Sum(int a, int b) { return a + b; } static int dif(int a, int b) { return a - b; } static int prod(int a, int b) { return a * b; } static int quot(int a, int b) { return a / b; } static void Main(string[] args) { int num1; int num2; string action = ""; while (true) try { Console.Write("Введите Первое Число: "); num1 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } while (true) { while (true) try { Console.Write("Введите Второе Число: "); num2 = int.Parse(Console.ReadLine()); break; } catch { Console.WriteLine("Это не число!"); } if (string.IsNullOrEmpty(action)) while (true) try { Console.Write("Выберите Действие: (+,-,/,*)"); action = Console.ReadLine(); break; } catch { Console.WriteLine("Такого Действия Нету!"); } if (action == "+") Console.WriteLine("Результат: " + Sum(num1, num2)); if (action == "-") Console.WriteLine("Результат: " + dif(num1, num2)); if (action == "*") Console.WriteLine("Результат: " + prod(num1, num2)); if (action == "/") if (num2 != 0) Console.WriteLine("Результат: " + quot(num1, num2)); else Console.WriteLine("На Ноль Делить Нельзя ! "); } } } }
itstranger, itstranger, чел у тебя будет баг в коде if (action == "/") if (num2 != 0) Console.WriteLine("Результат: " + quot(num1, num2)); else Console.WriteLine("На Ноль Делить Нельзя ! "); C# if (action == "/") if (num2 != 0) Console.WriteLine("Результат: " + quot(num1, num2)); else Console.WriteLine("На Ноль Делить Нельзя ! ");