Heh, just noticed the while loop charge that it violates scope. It doesn't in most languages. The value declared in a function is scoped for the function. While loops lack independant scopes. For loops however have a scope. But, a varable scoped for a function could easily be used by a for loop with its own scoping just as a global could be used by a function...