It's also worth noting that statements like
for (i = 1; i <= 100; i++) {
S;
if (P) {
break;
}
}
are just as bad since `break' (and `continue' and early `return') are a just gotos in disguise.