[CODE] public static void main(String[] args) {
int k, c, j, a, b, d;
j = 10;
b = 2000;
k = 3000;
d = 4000;
a = 1;
if (j < 100) {
if (j < 90)
a = b;
if (k > j)
c = k - j;
} else
c = d;
System.out.println(a);
System.out.println(c);
System.out.println(k);
}
}[/CODE]
претензия при выводе на печать только к переменной [c]:
The local variable c may not have been initialized
Почему? Как мне ее вывести на печать?
Пример надуманный, речь идет только о видимости переменных, так вот, не пойму, как ее вывести в консоль.
Здравствуйте, в вашем примере все переменные являются локальными, то есть не выходят за пределы одного метода. Все локальные переменные должны быть инициализированы, Чтобы инициализировать переменную необходимо воспользоваться оператором присвоения (=). Почему это так важно? После операции присвоения, под переменную выделяется память, и компилятор узнает откуда ему брать то или иное значение. Если память не будет выделена, то умный компилятор сообщает нам об этом (The local variable c may not have been initialized). Чтобы ваш пример заработал достаточно добавить одну строчку кода, например так:
j = 10;
c = 0;
b = 2000;