В данном ниже коде в строке Console.WriteLine("{0}", U);
U (по словам компилятора) - локальная переменная, которой не присвоено значение, хотя она была инициализирована до этого. В чем причина ошибки и как ее исправить?
Полный код:
static void Main(string[] args)
{
double x, y, U;
x = Double.Parse(Console.ReadLine());
y = Double.Parse(Console.ReadLine());
if (x >= -2 && x <= 2)
{
if (y >= -2 && y <= 2)
U = Math.Sqrt(Math.Abs(x * y));
}
else
U = Math.Abs(Math.Pow(x, 2) - Math.Pow(y, 3));
Console.WriteLine("{0}", U);
Console.ReadKey();
Проблема вот в чём: когда вы объявляете переменную типа int
ей присваиваеться значение default
а точнее 0. И когда вы это делаете неявно компилятор думает что вы упустили этот момент с объявлением переменной. Возникнет вопрос
"А я же в условной конструкции присваиваю значение что ни так?" Я отвечу:
Когда вы делаете условную конструкцию вы используете булеву переменную как ни как и она может быть как и истиной (true
) так и ложной (false
). И если все же она вернет true тогда выполниться присваивание. А если нет?? Получается что переменная U
так и останется не присвоенным явно значением? Так что сделайте просто так:
static void Main(string[] args)
{
double x, y, U;
x = double.Parse(Console.ReadLine());
y = double.Parse(Console.ReadLine());
if (x >= -2 && x <= 2)
{
if (y >= -2 && y <= 2)
U = Math.Sqrt(Math.Abs(x * y));
else
U = 0; //if false U will be zero.
}
else
U = Math.Abs(Math.Pow(x, 2) - Math.Pow(y, 3));
Console.WriteLine($"{U}");
Console.ReadKey();
}
Да, также вы можете дать начальное значение переменной что бы в случае что блок с условием не сработает оно не измениться. Но я просто дал пояснение на примере
А почему так??
SeeSharp
Задайте начальное значение переменной U,она в любом случае потом поменяет свое значение,а так там мусор мб какой-нибудь лежит:
double x, y, U = 0;
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Обработчик кнопки главной формы которая открывает дочернее окно
Очень странная ситуацияКогда запускаю проект в студии, выбираю файл в форме он отправляется и возвращает нужные мне данные
Собрал проект, всё хорошоЗапускаю андроид приложение и выводится такая ошибка