Сначала инициализация переменной, потом проверка условия, потом тело цикла отработает если условие ОК, и только потом инкремент.
То есть при i = 2, внутренний цикл только инициализацию проведет, проверит условие и больше ничего не будет, потом управление вернется внешнему циклу. При i = 3 один раз щелкнет внутренний цикл, при i = 4 сработает внутренний один раз, и второй раз сработает if и выполнится continue. и так далее