Не понимаю, как выполняется while

Mikhail-up

Новичок
Пользователь
Ноя 15, 2020
8
0
1
Условие
Определите количество четных элементов в последовательности, завершающейся числом 0.

num_even = -1
element = -1
while element != 0:
element = int(input())
if element % 2 == 0:
num_even += 1
print(num_even)

при последовательности чисел:4,1,2,0 правильный ответ «2», но в моем понимании должно быть «1», ведь num_even = -1, -1+1+1=1. Не понимаю, объясните пожалуйста!
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 581
457
83
цикл while проверяет условие в начале итерации, если условие поменялось в теле цикла (у вас в теле цикла вводятся цифры), то while проверит его только на следующей итерации (пройдя текущую итерацию до конца, соответственно прибавив лишнюю единицу к num_even)
в вашем случае можно проверять ввод, и если ввели цифру 0, то останавливать цикл, например так
Python:
num_even = -1
element = -1
while True:
    element = int(input())
    if element == 0:
        break
    if element % 2 == 0:
        num_even += 1
print(num_even)
 

Mikhail-up

Новичок
Пользователь
Ноя 15, 2020
8
0
1
все таки не понимаю, ведь по условию 1добавляется если число делится на 2 без остатка, разве не так?
 
Последнее редактирование:

Форум IT Специалистов