I only use the first form if var is already declared and being used for something else. I have a hard time creating a variable whose only reason for existence is as a flag to set to break out of a loop. UKHeliBob has a point about only having one exit from a loop, but then I have to scan the code anyway to see where the flag got set.
I use the bottom form because it is usually more efficient, and I use for (;
instead of while (1) because I like the way it looks.
If I have to break two levels out of nested loops, sometimes I will create a function and use return.
I usually value efficiency over readability. It doesn't mean it's "better", it's just what I prefer.