程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言for語句用法詳解

C語言for語句用法詳解

編輯:關於C語言
 

在C語言中,for語句使用最為靈活,它完全可以取代 while 語句。它的一般形式為:
    for(表達式1; 表達式2; 表達式3)  語句
它的執行過程如下:

  1. 先求解表達式1。
  2. 求解表達式2,若其值為真(非0),則執行for語句中指定的內嵌語句,然後執行下面第3)步;若其值為假(0),則結束循環,轉到第5)步。
  3. 求解表達式3。
  4. 轉回上面第2)步繼續執行。
  5. 循環結束,執行for語句下面的一個語句。


其執行過程可用下圖表示。


for語句最簡單的應用形式也是最容易理解的形式如下:
        for(循環變量賦初值; 循環條件; 循環變量增量)  語句
循環變量賦初值總是一個賦值語句,它用來給循環控制變量賦初值;循環條件是一個關系表達式,它決定什麼時候退出循環;循環變量增量,定義循環控制變量每循環一次後按什麼方式變化。這三個部分之間用分號(;)分開。例如:

復制純文本新窗口
 
  1. for( i=1; i<=100; i++ ) sum=sum+i;
for( i=1; i<=100; i++ )  sum=sum+i;

先給i賦初值1,判斷i是否小於等於100,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>100時,結束循環。相當於:

復制純文本新窗口
 
  1. i=1;
  2. while(i<=100){
  3. sum=sum+i;
  4. i++;
  5. }
i=1;
while(i<=100){
    sum=sum+i;
    i++;
}


對於for循環中語句的一般形式,就是如下的while循環形式:
    表達式1;
    while(表達式2){
        語句
        表達式3;
    }

使用for語句應該注意:
1) for循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以缺省,但分號(;)不能缺省。

2) 省略了“表達式1(循環變量賦初值)”,表示不對循環控制變量賦初值。

3) 省略了“表達式2(循環條件)”,則不做其它處理時便成為死循環。例如:

復制純文本新窗口
 
  1. for( i=1; ; i++ ) sum=sum+i;
for( i=1; ; i++ )  sum=sum+i;

相當於:

復制純文本新窗口
 
  1. i=1;
  2. while(1){
  3. sum=sum+i;
  4. i++;
  5. }
i=1;
while(1){
    sum=sum+i;
    i++;
}


4) 省略了“表達式3(循環變量增量)”,則不對循環控制變量進行操作,這時可在語句體中加入修改循環控制變量的語句。例如:

復制純文本新窗口
 
  1. for( i=1; i<=100 ; ){
  2. sum=sum+i;
  3. i++;
  4. }
for( i=1; i<=100 ; ){
    sum=sum+i;
    i++;
} 


5) 省略了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。例如:

復制純文本新窗口
 
  1. for( ; i<=100 ; ){
  2. sum=sum+i;
  3. i++;
  4. }
for( ; i<=100 ; ){
    sum=sum+i;
    i++;
}

相當於:

復制純文本新窗口
 
  1. while(i<=100){
  2. sum=sum+i;
  3. i++;
  4. }
while(i<=100){
    sum=sum+i;
    i++;
}


6) 3個表達式都可以省略。例如:
    for( ; ; )  語句
相當於:
    while(1)  語句

7) 表達式1可以是設置循環變量的初值的賦值表達式,也可以是其他表達式。例如:

復制純文本新窗口
 
  1. for( sum=0; i<=100; i++ ) sum=sum+i;
for( sum=0; i<=100; i++ )  sum=sum+i;


8) 表達式1和表達式3可以是一個簡單表達式也可以是逗號表達式。

復制純文本新窗口
 
  1. for( sum=0,i=1; i<=100; i++ ) sum=sum+i;
for( sum=0,i=1; i<=100; i++ )  sum=sum+i;

或:

復制純文本新窗口
 
  1. for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
for( i=0,j=100; i<=100; i++,j-- )  k=i+j;


9) 表達式2一般是關系表達式或邏輯表達式,但也可是數值表達式或字符表達式,只要其值非零,就執行循環體。例如:

復制純文本新窗口
 
  1. for( i=0; (c=getchar())!=’\n’; i+=c );
for( i=0; (c=getchar())!=’\n’; i+=c );

又如:

復制純文本新窗口
 
  1. for( ; (c=getchar())!=’\n’ ; )
  2. printf("%c",c);
for( ; (c=getchar())!=’\n’ ; )
    printf("%c",c);

循環的嵌套

【例6-7】循環嵌套的應用。

復制純文本新窗口
 
  1. #include <stdio.h>
  2. int main(void){
  3. int i, j, k;
  4. printf("i j k\n");
  5. for (i=0; i<2; i++)
  6. for(j=0; j<2; j++)
  7. for(k=0; k<2; k++)
  8. printf("%d %d %d\n", i, j, k);
  9. return 0;
  10. }
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved