for(表达式1,表达式2,表达式3)//for1
for(表达式1,表达式2,表达式3)//for2
问下大家,for1的表达式3是在for2的运算后还是运算前还是运算中?
for循ç¯çä¸è¬å½¢å¼ä¸ºï¼
for(表达å¼1; 表达å¼2; 表达å¼3){
è¯å¥å
}
å®çæ§è¡è¿ç¨å¦ä¸ï¼
1) å
æ±è§£è¡¨è¾¾å¼1ã
2) æ±è§£è¡¨è¾¾å¼2ï¼è¥å
¶å¼ä¸ºçï¼é0ï¼ï¼åæ§è¡å¾ªç¯ä½ï¼å¦åç»æ循ç¯ã
3) æ§è¡å®å¾ªç¯ä½ï¼åæ±è§£è¡¨è¾¾å¼3ã
4) éå¤æ§è¡æ¥éª¤ 2) å 3)ï¼ç´å°å¾ªç¯ç»æã
注æï¼è¡¨è¾¾å¼1ä»
å¨ç¬¬ä¸æ¬¡å¾ªç¯æ¶æ±è§£ï¼ä»¥åé½ä¸ä¼åæ§è¡ï¼å¯ä»¥è®¤ä¸ºè¿æ¯ä¸ä¸ªåå§åè¯å¥ã
for循ç¯çæ§è¡è¿ç¨å¯ç¨ä¸å¾è¡¨ç¤ºï¼
æ¯å¦æ们ç¨for循ç¯æ¥è®¡ç®1å å°100çå¼ï¼
#include <stdio.h>
int main(){
int i, sum=0;
for(i=1; i<=100; i++){
sum+=i;
}
printf("%d\n",sum);
return 0;
}
è¿è¡ç»æï¼
5050
代ç åæï¼
1) æ§è¡å° for è¯å¥æ¶ï¼å
ç» i èµåå¼1ï¼å¤æ i<=100 æ¯å¦æç«ï¼å 为æ¤æ¶ i=1ï¼i<=100 æç«ï¼æ以æ§è¡å¾ªç¯ä½ã循ç¯ä½æ§è¡ç»æåï¼sumçå¼ä¸º1ï¼ï¼åè®¡ç® i++ã
2) 第äºæ¬¡å¾ªç¯æ¶ï¼i çå¼ä¸º2ï¼i<=100 æç«ï¼ç»§ç»æ§è¡å¾ªç¯ä½ã循ç¯ä½æ§è¡ç»æåï¼sumçå¼ä¸º3ï¼ï¼åè®¡ç® i++ã
3) éå¤æ§è¡æ¥éª¤ 2)ï¼ç´å°ç¬¬101次循ç¯ï¼å 为æ¤æ¶ i çå¼ä¸º101ï¼i<=100 ä¸æç«ï¼æ以ç»æ循ç¯ã
for循环的一般形式为:
for(表达式1;
表达式2;
表达式3){
语句块
}
它的执行过程如下:
1)
先求解表达式1。
2)
求解表达式2,若其值为真(非0),则执行循环体,否则结束循环。
3)
执行完循环体,再求解表达式3。
4)
重复执行步骤
2)
和
3),直到循环结束。
注意:表达式1仅在第一次循环时求解,以后都不会再执行,可以认为这是一个初始化语句。
for循环的执行过程可用下图表示:
比如我们用for循环来计算1加到100的值:
#include
<stdio.h>
int
main(){
int
i,
sum=0;
for(i=1;
i<=100;
i++){
sum+=i;
}
printf("%d\n",sum);
return
0;
}
运行结果:
5050
代码分析:
1)
执行到
for
语句时,先给
i
赋初值1,判断
i<=100
是否成立;因为此时
i=1,i<=100
成立,所以执行循环体。循环体执行结束后(sum的值为1),再计算
i++。
2)
第二次循环时,i
的值为2,i<=100
成立,继续执行循环体。循环体执行结束后(sum的值为3),再计算
i++。
3)
重复执行步骤
2),直到第101次循环,因为此时
i
的值为101,i<=100
不成立,所以结束循环。