Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

variable might not have been initialized

23.08.17 17:30
Re: variable might not have been initialized
 
Программист коренной житель

В 11-й строке напиши "else if..."

А 13-ю строку замени на "else"


Грубо говоря твой пример сводится к такому:

int min; // min не определено

if (a<=b && a<=c)

min = a; // min определено

else

;// min не определено

if (b<=a && b<=c)

min = b; // min определено

else

;// min не определено


if (c<=a && c<=b)

min = c; // min определено

else

;// min не определено


Т.е. получается, что если ни одно из 3-х условий не выполняются, то min остается неопределенной.

Логика твой задачи такова, что одно из условий обязательно выполняется, но компилятор ничего не знает о логике твоей задачи, он проверяет синтаксис. Грубо говоря, условия ты можешь заменить так:

if (IsMonday ())

min = a; // min определено

if (IsJuli)

min = b; // min определено

if (IsOddDay)

min = c; // min определено


В таком случае, во вторник 22-го августа переменная min окажется не инициализирована.

Более того, в понедельник 3-го июля значение переменной min будет присвоено аж 3 раза :)


Так вот, компилятор видит, что существует кака минимум один "проход" при котором переменная min не будет инициализарована и ругается на этот вариант :)

 

Перейти на