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

