Vare Lion
Знаток
(460)
6 дней назад
Тут есть несколько проблем и логических ошибок в вашем коде:
int.TryParse() возвращает bool, а не int: Метод TryParse возвращает true, если парсинг прошел успешно, и false в противном случае. Он не возвращает число. Число сохраняется в переменной, переданной через out.
Неверный тип переменной для результата TryParse(): Результат TryParse должен быть сохранен в bool, в вашем коде вы пытаетесь сохранить bool в int. Это вызовет ошибку компиляции.
Неправильное использование switch: switch в данном случае не нужен. Лучше использовать if-else. switch предназначен для сравнения переменной с набором константных значений, а здесь вам нужно просто проверить значение bool.
Неинициализированная переменная firstnum: Если парсинг не удался (firstnumcanbeparsed будет false), то переменная firstnum не будет инициализирована и будет содержать мусор. Лучше инициализировать ее перед использованием.
Исправленный код:
using System;
public class ConsoleApp1
{
public static void Main(string[] args)
{
Console.WriteLine("Введите первое число");
string firstline = Console.ReadLine();
int firstnum = 0; // Инициализируем firstnum
bool firstnumcanbeparsed = int.TryParse(firstline, out firstnum); // Получаем результат TryParse в bool, а число в firstnum
if (firstnumcanbeparsed)
{
Console.WriteLine("Число успешно спаршено: " + firstnum);
}
else
{
Console.WriteLine("Неверный ввод");
}
Console.ReadKey();
}
}
csharp
Объяснение изменений:
int.TryParse(firstline, out firstnum): Мы вызываем TryParse. Результат (успех или неудача) сохраняется в переменной firstnumcanbeparsed (типа bool). Если парсинг удался, в переменную firstnum записывается полученное число.
if (firstnumcanbeparsed): Проверяем, был ли парсинг успешным.
firstnum = 0;: Инициализация firstnum перед использованием. Это хорошая практика, чтобы избежать неопределенного поведения, если парсинг не удастся. В данном случае, если парсинг не удастся, firstnum сохранит свое начальное значение, которое в дальнейшем не используется.
Console.WriteLine("Число успешно спаршено: " + firstnum);: Выводим спарсенное число, если парсинг прошел успешно.
Этот код сначала пытается распарсить введенную строку. Если это удается, выводится сообщение об успехе и число. Если нет, выводится сообщение об ошибке.