I know I'm coming late to this party but this is a really good question and I think it deserves a really good treatment.
The original for
loop, the one with the semicolons in it, is amazingly flexible, powerful, and confusing as all get out. It is seldom taught well, it is a very easy place for bugs to hide, and it is not going away.
To master it you must learn the 1, 2, 4, 3, 2, 4, 3 pattern the OP mentioned. You must burn it into your soul. You must burn it into the souls of your students. The question is, how?
The best way is to actually see it. To watch it happen. Unfortunately debugging tools often insist on highlighting the entire line.

Can you tell if i
is about to be initialized, tested, or incremented here? Debugger highlighting is often useless for teaching or debugging the classic for loop.
However, there is a way around that problem. The c style languages all have a feature that lets us work around this debugger limitation. Whitespace. Whitespace is meaningless in these languages. You can take advantage of that.
So long as you're willing to explain that this:
for(int i=0; i<10; i++) {
System.out.println(i);
}
will do the same thing as this:
for(
int i=0;
i<10;
i++
) {
System.out.println(i);
}
then you can show them this:

Do that, and rather than just explaining, you are showing them how this works, you are teaching them how to debug it themselves when they get confused by it.
Now sure the multiline style isn't popular with for loops but the students certainly don't have to turn in code that looks like that. It's just a form to use while testing because our debugging tools aren't yet smart enough to highlight only the relevant parts of a line.
I've changed the speed and rhythm I use as I click. That's no accident. I'm using that to emphasize the starting and ending parts of each iteration. Students should not only feel like they can predict this. They should feel like they can use the debugger to re-teach themselves this pattern quickly if they ever need to.
Consider a cascading style that retains column position for those more visually oriented:

Now that's just the start of understanding loops. Writing correct, readable, efficient loops is a whole other issue that this answer hardly does justice to.
A lot of bugs hide right here. Don't undersell how worthy this is of close study.
break
, and no post-loop-body expression). $\endgroup$ – hobbs Jul 14 '17 at 5:01