Все очень просто for это
for(инициализация; проверка; изменение) действие;
Так вот, он работает так -
- Инициализация
- Проверка
Если проверка - false - закончить цикл
Иначе - продолжить - Действие
- Изменение - далее опять на 2
После 4того раза мы прибавляем к i 1. Ясен пень, она становится 5. После чего проверка нам дает false и цикл прекращается. Но 5-то никуда не делась?
Если вы все-равно ничего не поняли, объясню проще.
Чтобы цикл прекратился
проверка должна вернуть
false, верно? Т.к. 4 удовлетворяет она будет напечатана в
цикле , улавливаете? 4++ - это уже 5. А
5 < 5
возвратит
false. Если она вернется в 4 - то цикл просто не сможет закончится... то она
должна снаружи не удовлетворять проверку.
PS Странно, что у вас он вообще работает - область видимости i - только в цикле.