Задать контролируемый ввод значений - C#

Узнай цену своей работы

Формулировка задачи:

как задать контролируемый ввод значений в данном случае обязательно больше нуля, возможно связать еще и существование треугольника с try catch?
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. try
  4. {
  5. Console.Write("ввод стороны x:");
  6. uint x = Convert.ToUInt32(Console.ReadLine());
  7. Console.Write("ввод стороны y:");
  8. uint y = Convert.ToUInt32(Console.ReadLine());
  9. Console.Write("ввод стороны z:");
  10. uint z = Convert.ToUInt32(Console.ReadLine());
  11. if (x + y < z || x + z < y || y + z < x)
  12. {
  13. Console.WriteLine("такого треугольника нет");
  14. }
  15. }
  16. catch (FormatException)
  17. {
  18. Console.WriteLine("не входит в диапазон значений");
  19. }
  20. }
тут только через Exception получается
да и если нули представлять как стороны не подходит

Решение задачи: «Задать контролируемый ввод значений»

textual
Листинг программы
  1. namespace ConsoleApplication
  2. {
  3.     static class Extensions
  4.     {
  5.         public static int? BoundedParse(this string str, int lower, int upper)
  6.         {
  7.             if (str == null)
  8.                 return null;
  9.             int result;
  10.             bool success;
  11.             success = int.TryParse(str, out result);
  12.             if (!success)
  13.                 return null;
  14.             if (result < lower)
  15.                 return null;
  16.             if (result > upper)
  17.                 return null;
  18.             return result;
  19.         }
  20.     }
  21.     class Program
  22.     {
  23.      
  24.         static int PromptForNumber(string prompt, int lower, int upper)
  25.         {
  26.             int? choice;
  27.             do
  28.             {
  29.                 Console.WriteLine(prompt);
  30.                 choice = Console.ReadLine().BoundedParse(lower, upper);
  31.             }
  32.             while (choice == null);
  33.             return choice.Value;
  34.         }
  35.         static void Main()
  36.         {
  37.             string s = Console.ReadLine();
  38.             int upper = 10;
  39.             int lower = 1;
  40.             int res = PromptForNumber(s, lower, upper);
  41.         }
  42.     }
  43. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы