for 其格式为for(<数字1>;<数字2>;<数字3>)<语句>。其中的<语句>同上,即可接单句也可接复合语句。而<数字1>、<数字2>和<数字3>由于是数字,就是表达式,进而可以做表达式语句能做的所有的工作——操作符的计算。for语句的意思是先计算<数字1>,相当于初始化工作,然后计算<数字2>。如果<数字2>的值为零,表示逻辑假,则退出循环,执行for后面的语句,否则执行<语句>,然后计算<数字3>,相当于每次循环的例行公事,接着再计算<数字2>,并重复。上面的<语句>一般被称作循环体。
long a, b; for( a = 1, b = 1; a <= 10; a++ ) b *= a;
上面执行完后b是10的阶乘,和前面在说明if语句时举的例子相比,其要简单地多,并且可读性更好——a = 1, b = 1是初始化操作,每次循环都将a加一,这些信息是goto和if语句表现不出来的。由于前面一再强调的语句和数字的概念,因此可以如下:
long a, b = 1; for( ; b < 100; ) for( a = 1, b = 1; a; ++a, ++b ) if( b *= a ) switch( a = b ) { case 1: a++; break; case 2: for( b = 10; b; b-- ) { a += b * b;} case 3: a *= a; } break; }