Arexx-Henk, die Erste:

Der Unterschied ist weg, wenn du die bedingung dorthin schreibst,wo sie hingehört, also
while (bedingung) { } <==> for ( ; bedingung ; ) { }

ansonsten: anderes is eben anders

Arexx-Henk, die Zweite:
Was du bewunderst, ist das Ergebnis des Compiler-Optimizers.
while (1) heiß nunmal IMMER, d.h. abfragen braucht er nix, also weg damit
dein zweites Beispiel ist zu sehr pseudocode, kann man nix zu sagen