Как здесь срабатывает проверка на истинность?
Только учусь java. Это программка по выводу четных чисел. И почему-то я проверку на истинность понимаю наоборот. Как я мыслю... Например i=5, соответственно остаток по модулю равен 1. И тут проверка на истинность 1!=0, то есть "вопрос 1 не равно 0?" Ответ на этот вопрос - "Да", значит True и проверка на истинность пройдена. Значит цифра 5 должна выводится в консоль, а она не выводится. Подскажите пожалуйста где в моем мышлении ошибка.
public class HelloWorld {
public static void main(String[] args) {
int i;
for (i = 0; i <= 20; i++) {
if ((i % 2) != 0) continue;
System.out.println(i);
}
}
}
Ответы (3 шт):
вопрос 1 не равно 0?" Ответ на этот вопрос - "Да", значит True и проверка на истинность пройдена. Значит цифра 5 должна выводится в консоль
все верно, кроме последнего предложения. у вас код выглядит так
if ((i % 2) != 0) continue;
соответственно, подставляем 5, получаем (5 % 2 = 1) != 0 ? да, 1 не равно 0, следовательно, идем на следующую итерацию
Если проверка выдает True, то выполняется continue. Вывод выполняется если проверка выдает False.
Вы не учитываете поведение инструкции continue, по сути она "бросает" вас на конец цикла
Не на начало, а именно конец - это важно потому что есть постфиксные циклы типа do-while, в которых проверка условия цикла выполняется в конце, а не в начале.