重复处理是指反复执行相同的程序语句,但可能会在满足某个条件时退出循环。c语言提供了一些现成的结构来实现重复处理,例如while循环,do…while循环和for循环。在这些结构中,当某个条件为真时,预先定义的一批语句将被反复执行。下面是一个重复处理的例子:
while (x<l00)
{
y=0;
do {
for(z =0;z<l00;z++)
y++ ;
}while (y<1000) ;
x++;
}
在这个例子中,包含在while循环中的语句被执行100次,在while循环中还有一个do…while循环,在do…whlie循环中的for循环被执行10次;在for循环中,变量y作100次自增运算。因此,语句
y++;
总共被执行100,000次(100次while×10次do…while×100次for)。然而,在while循环结束时,y并不是100,000,因为每循环1000次后y都会被置为0。
在c程序中,重复处理的应用是非常广泛的,例如你经常要用重复处理来读写数组或文件。下面的程序用重复处理来读入并向屏幕打印你的AUTOEXEC.BAT文件:
# include <stdio. h>
# include <stdlib. h>
int main (void)
{
FILE * autoexec_file ;
char buffer[250] ;
if ( (autoexec_file = fopen (" C : \\ AUTOEXEC. BAT", "rt ") ) = = NULL )
{
{printf (stderr,"Cannot open AUTOEXEC. BAT file. \n") ;
exit(1) ;
printf("Contents of AUTOEXEC. BAT file : \n\n" ) ;
while(! feof(autoexec file))
{
fgets (buffer, 200,autoexee_file) ;
printf(" %s" ,buffer) ;
}
felose (autoexee_file) ;
rerun(0) ;
}
注意,上例用一条while语句来反复地调用fgets()和printf()函数,以读入AUTOEXEC.BAT文件中的每一行,并把它们打印到屏幕上。这仅仅是如何使用重复处理的例子之一。