Я не вижу ничего функционально неправильного с точки зрения того, что выполняется, но я просто потратил час на то, чтобы доказать, что мой код и компилятор делают то, что они должны.
Рассмотрим этот код:
public int getAnswer(int a) {
int retval = 18;
int x = 25;
int y = 50;
while (a-- > 0) {
if (a == 3) {
retval = a;
return retval;
}
}
x = 10;
y = 20;
return 0;
}
Вызывается
int theAnswer = getAnswer(6);
Перемещайте обе строки, содержащие return
, и перед запуском кода попробуйте предсказать результат и, следовательно, какая строка будет удалена.
Как вы можете себе представить из тон моего вопроса, подсвечивается неправильная линия, но возвращается правильный результат. Если вы пройдете через код, он танцует вокруг совсем немного.
Есть ли что-нибудь, что можно настроить по-другому, чтобы отображались правильные строки? (Я использую последнюю студию Android, которую, как я понимаю, потенциально нестабилен, но я уверен, что некоторое время наблюдал подобное поведение в Eclipse, но я никогда не тратил время на его отслеживание, возможно, это Java-вещь).