#include <stdio.h> int main(){ int i, sum=0; i = 1; //語句① while(i<=100 /*語句②*/ ){ sum+=i; i++; //語句③ } printf("%d\n",sum); return 0; }可以看到,語句①②③被放到了不同的地方,代碼結構較為松散。為了讓程序更加緊湊,可以使用 for 循環來代替,如下所示:
#include <stdio.h> int main(){ int i, sum=0; for(i=1/*語句①*/; i<=100/*語句②*/; i++/*語句③*/){ sum+=i; } printf("%d\n",sum); return 0; }在 for 循環中,語句①②③被集中到了一起,代碼結構一目了然。
for(表達式1; 表達式2; 表達式3){
語句塊
}
#include <stdio.h> int main(){ int i, sum=0; for(i=1; i<=100; i++){ sum+=i; } printf("%d\n",sum); return 0; }運行結果:
for(初始化語句; 循環條件; 自增或自減){
語句塊
}
;
必須保留)。int main(){ int i = 1, sum = 0; for( ; i<=100; i++){ sum+=i; }可以看到,將
i=1
移到了 for 循環的外面。for(i=1; ; i++) sum=sum+i;相當於:
i=1; while(1){ sum=sum+i; i++; }所謂死循環,就是循環條件永遠成立,循環會一直進行下去,永不結束。死循環對程序的危害很大,一定要避免。
for( i=1; i<=100; ){ sum=sum+i; i++; }
for( ; i<=100 ; ){ sum=sum+i; i++; }相當於:
while(i<=100){ sum=sum+i; i++; }
for( ; ; ) 語句
相當於:while(1) 語句
for( sum=0; i<=100; i++ ) sum=sum+i;
for( sum=0,i=1; i<=100; i++ ) sum=sum+i;或:
for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
for( i=0; (c=getchar())!='\n'; i+=c );又如:
for( ; (c=getchar())!='\n' ; ) printf("%c",c);