#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);