Почему следующий вариант работает нормально?
String str;
while (condition) {
str = calculateStr();
.....
}
Но этот вариант считается опасным/неправильным:
while (condition) {
String str = calculateStr();
.....
}
Нужно ли объявлять переменные вне цикла?