Анализатор пути кода компилятора не идет достаточно далеко, чтобы признать, что цикл while(boolean_1 == false)
всегда будет выполняться хотя бы один раз.
Что касается компилятора, тело цикла может быть пропущено, в этом случае переменная choice2
не присваивается, т. е. точно не назначено .
Это можно исправить, инициализировав ее фиктивным значением, например
char choice2 = ' ';
Конечно, если бы компилятор выполнил расширенный анализ, он обнаружил бы, что цикл while(boolean_1 == false)
работает вечно, поскольку boolean_1
никогда не обновляется, и генерировал бы ошибку компиляции, говорящую, что while (choice2 != 'Y' && choice2 != 'N');
является недостижимым .