To my way of thinking, a for loop is used to iterate over a known or determinable range.String[] names = //something;for ( int i = 0; i < names.length; i++ ) { //do stuff }which is equivalent (scoping of i aside) to :String[] names = //something;int i = 0;while (i < names.length ){   // do stuff   i++;}In other words, the for loop is simply a (highly useful) syntactic sugar for a commonly used while construct.However, I'm seeing a lot of for(;;) constructs on the web which are functionally equivalent to while(true)What is the reasoning for this?  Why would the infinite for loop be preferred over the infinite while loop?// I even saw a java textbook that didn't use while loops at all!  Leading to such monstrous constructs as:String input = getInput();for( ; !inputIsValid(input) ; ){   //redo;}
Why am I seeing so many for(;;) constructs?
language agnostic;coding style
It's a hold-over from old programming practices on the PDP-11 (yes, I said old).  It used to save a single instruction, which was useful for making loops run faster.See the following for additional information:  http://www.flounder.com/exceptions.htm