@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));
            }
        }
    }
}
  • Вопрос задан
  • 102 просмотра
Решения вопроса 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
Senior .NET developer
Console.Write("Введите целое число -> ");
            var input = Console.ReadLine();
            Console.WriteLine(int.TryParse(input, out var num)
                ? $"Ваше число в квадрате -> {num * num}"
                : "Несоответствие типа.");
Ответ написан
GavriKos
@GavriKos
А теперь переведите ошибку. И подумайте что должно вывестись в консоль в том случае, если Convert вызовет исключение. Какое будет значение num?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ПРОФЭЛИТ Казань
от 100 000 до 170 000 ₽
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
GD Company Санкт-Петербург
от 120 000 до 150 000 ₽
02 апр. 2020, в 16:49
15000 руб./за проект
02 апр. 2020, в 16:41
2000 руб./за проект
02 апр. 2020, в 16:33
10000 руб./за проект