В C# не работает кот
Вот код, я пытаюсь сделать чтоб при вводе числа оно сначала проверяло можно ли парсить, выводило это в значение переменной bool и если можно то чтоб парсилось. Это надо чтоб не просто парсить, если так делать и будет введено не число будет ошибка.
using System;
public class ConsoleApp1
{
public static void Main(string[] args) {
Console.WriteLine("Введите первое число");
string firstline = Console.ReadLine();
int firstnum = int.TryParse(firstline, out bool firstnumcanbeparsed);
Console.WriteLine(firstnumcanbeparsed);
switch (firstnumcanbeparsed)
{
case true:
firstnum = int.Parse(firstline);
break;
case false:
Console.WriteLine("Неверный ввод");
break;
}
Console.ReadKey();
}
} Тут есть несколько проблем и логических ошибок в вашем коде:
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);: Выводим спарсенное число, если парсинг прошел успешно.
Этот код сначала пытается распарсить введенную строку. Если это удается, выводится сообщение об успехе и число. Если нет, выводится сообщение об ошибке.
Либо библиотеки или библиотеки на клаву)
спасибо, изучу код
Так если парсинг будет неудачным, исключение будет все равно. Не очень понятно, чего именно ты пытаешься добиться, что еще не реализовано.
Ну и использование switch вместо if - это несколько странно.
если использовать tryparse исключения не будет, а switch просто короче выглядит чем if
Заведи собачку, может она сработает.
Коты - они вообще существа ленивые.
bruh
Библиотеки на клаву надо