@Rus_domaci

Какую ошибку я допустил?

Не могу найти ошибку в коде.
using System;
namespace TestProject
{
    class MainClass
    {
        static void Main(string[] args)
        {
            Console.Write("Введите целое число -> ");
            int num;
            try
            {
                num = Convert.ToInt32(Console.ReadLine());
            }
            catch (FormatException)
            {
                Console.WriteLine("Несоответствие типа.");
            }
            finally
            {
                Console.WriteLine("Ваше число в квадрате -> " + Math.Pow(Convert.ToDouble(num), 2.0));
            }
        }
    }
}
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
twobomb
@twobomb
Инициализируйте num изначально
int num = 0;
P.S. Дело в том что блок finally выполяется в любом случае, а если я введу вместо числа слово из трех букв то сначла отработает кетч на несоотвествие типа, а потом мой *** попытается перевести в дабл и возвести во вторую степень.
Правильно этот код было бы написать как-то так
Console.Write("Введите целое число -> ");
            int num;
            try
            {
                num = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Ваше число в квадрате -> " + Math.Pow(Convert.ToDouble(num), 2.0));
            }
            catch (FormatException)
            {
                Console.WriteLine("Несоответствие типа.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Console.Write("Введите целое число -> ");
            var input = Console.ReadLine();
            Console.WriteLine(int.TryParse(input, out var num)
                ? $"Ваше число в квадрате -> {num * num}"
                : "Несоответствие типа.");
Ответ написан
Комментировать
GavriKos
@GavriKos
А теперь переведите ошибку. И подумайте что должно вывестись в консоль в том случае, если Convert вызовет исключение. Какое будет значение num?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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