Загрузка...

Проблема с кал-кулятором

Тема в разделе C# создана пользователем shword 29 дек 2020. 408 просмотров

  1. shword
    shword Автор темы 29 дек 2020 0 15 дек 2018
    В общем вся проблема это деление на ноль.
    Я сделал так чтобы не выдавало исключение с помощью 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("На Ноль Делить Нельзя ! ");
    }
    }
    }
    }
    }
    }
     
  2. Morearty
    Morearty 29 дек 2020 Наш мир сошел с ума, но заметили это только психи. 898 8 апр 2020
    1. shword Автор темы
      Morearty, как никогда кстати):cool_bun:
  3. xKira7
    xKira7 30 дек 2020 1 18 авг 2020
    Я раз 12 прочитал, все так и не понял, что ты не можешь сделать.
     
  4. itstranger
    itstranger 30 дек 2020 13 19 апр 2020
    Вот вроде то, что тебе нужно.
    Код
    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("На Ноль Делить Нельзя ! ");
    }
    }
    }
    }
     
    1. Dead__Artis
      itstranger,
      itstranger, чел у тебя будет баг в коде
      C#
      if (action == "/")
      if (num2 != 0)
      Console.WriteLine("Результат: " + quot(num1, num2));
      else
      Console.WriteLine("На Ноль Делить Нельзя ! ");
  5. id152665718
    лучше через wpf сдклвть
     
  6. Collector1337
    Попробуй вопрос сформулировать по другому, а то реально не понятно
     
  7. koloslolya_inactive4186772
    if(b == 0){
    Console.WriteLine("Ошибка");
    return 0;
    }
    else{
    return a / b;
    }
     
    20 май 2021 Изменено
Загрузка...
Top