Как поймать исключение внутри цикла do while

Вы можете быть абсолютным сумасшедшим и псевдоним vim до vim -p, добавив в свой .bashrc:

alias vim="vim -p"

Это приведет к открытию нескольких файлов из оболочки во вкладках, без необходимости вызывать :tab ball изнутри vim.

-1
задан Dmitry Bychenko 18 January 2019 в 09:43
поделиться

3 ответа

Давайте оставим код простым - давайте извлечем метод InputInteger; Другое предложение - использовать TryParse вместо исключения исключений :

   private static int InputInteger(string title) {
     Console.WriteLine(); 

     // Keep on asking user
     while (true) {
       if (!string.IsNullOrEmpty(title)) 
         Console.Write(title);

       // if correct integer value provided, return it
       if (int.TryParse(Console.ReadLine(), out var result)) 
         return result;

       // in case of syntax error print the message
       Console.WriteLine("-- ERROR --");
       Console.WriteLine("Please, type integer number, try again!");
     }
   }  

Затем вы можете использовать его, когда захотите ввести целочисленное значение пользователем:

   int svar = InputInteger("How many items would you like to have in the list?");

   ...

   // get svar integer items 
   for (int i = 0; i < svar; ++i)
     myList.Add(InputInteger("Write the number you would like to add to your list: ")); 
0
ответ дан Dmitry Bychenko 18 January 2019 в 09:43
поделиться

Я ценю, что вы новичок в кодировании. Добро пожаловать, и я надеюсь, вам понравится.

Я немного реорганизовал код, чтобы сделать его более простым и безошибочным:

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            ProcessNumbers();
        }

        private static void ProcessNumbers()
        {
            var myList = new List<int>();
            string sinput = String.Empty;
            var number = 0;
            do
            {
                try
                {
                    Console.Write("Write the number you would like to add to your list (type stop when you are done): ");
                    var input = Console.ReadLine();

                    if(input != "stop")
                    {
                        number = int.Parse(input);
                        myList.Add(number);
                    }
                    else
                    {
                        sinput = input;
                    }
                }
                catch
                {
                    Console.WriteLine("ERROR: You typed a letter instead of a number, try again!");
                }

            } while (sinput != "stop");

            var sum = myList.Sum();
            Console.WriteLine("The sum of all your numbers is: " + sum);
            Console.Write("Press any key to exist...");
            Console.ReadKey();
        }
    }
}

По сути, он будет постоянно просить пользователя вводить цифры до тех пор, пока пользователь не прекратит ввод. В конце он покажет сумму всех чисел в результате. Дайте мне знать, если у вас есть какие-либо вопросы по поводу кода.

0
ответ дан tanveery 18 January 2019 в 09:43
поделиться

Вам нужно использовать блок try внутри него, как это

  int number = 0;
int svar = set by the user for exempel 2

do
{

       for (int i = 0; i < svar; i++)
       {
 try
  {
       Console.Write("\nWrite the number you would like to add to your list: ");
       nummer = int.Parse(Console.ReadLine());
   }

   catch
   {
   Console.WriteLine("\n-- ERROR --");
   Console.WriteLine("You typed a letter instead of a number, try again!");
   }

   myList.Add(number);

   }

} while (number == 0);
0
ответ дан Gaurav 18 January 2019 в 09:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: