?? codetc4b.dat
字號:
形式: for(表達式 1;表達式 2;表達式 3)語句
功能: C語言中的for語句使用最為靈活,不僅可以用于循環次數已經確定的情況,而且可以用于循環次數不確定的而只 給出循環結束條件的情況,它完全可以代替While語句.
說明: 它的執行過程如下:
(1) 先求解表達式 1.
(2) 求解表達式 2,若其值為真(值為非 0),則執行for語句中指定的內嵌語句,然后執行下面第(3)步。若為假( 值為 0) ,則結束循環,轉到第(5)步.
(3) 求解表達式 3.
(4) 轉回上面第(2)步驟繼續執行.
(5) 循環結束,執行for語句下面的一個語句.
----
形式: for(循環變量賦初值;循環條件;循環變量增值)語句
功能: 同上
說明: 1. 例如: for(i=1;i<=100;i++) sum=sum+i
可以看到for語句相當于以下語句
i=1;
while(i<=100)
{
sum=sum+i;
i=i+1;
}
顯然,用for語句簡單方便.對于以上for語句的一般形式也可以改寫為while循環的形式.
2.(1) for語句的一般形式中的"表達式 1"可以省略,此時應在for語句之前給循環變量賦初值.注意省略表達式1 時,其后的分號不能省略.
例如: for(;i<=100;i++)sum=sum+1;
執行時,跳過"求解表達式 1"這一步,其他不變.
(2) 如果表達式 2省略,即不判斷循環條件,循環無終止地進行下去.也就是認為表達式 2始終為真.
例如: for(i=1;;i++) sum=sum+1;
(3) 表達示 3也可以省略,但此時程序設計者應另外設法保證循環能正常結束
例如: for(i=1;i<=100;)
{
sum=sum+i;
i++;
}
在上面的for語句中只有表達式 1和表達式 2,而沒有表達式 3.i++的操作不放在for語句的表達試 3的位 置處,而作為循環體的一部分,效果是一樣的,都能使循環正常結束.
(4) 可以省略表達式 1和表達式 3,只有表達式 2,即只給循環條件.
例如: for(;i<=100;) while(i<=100)
{ {
sum=sum+i; 等同于 sum=sum+1;
i++; i++;
} }
在這種情況下,完全等同于while語句.可見for語句比while語句功能強,除了可以給出循環條件外,還可以 賦初值,使循環變量自動增值等.
(5) 3個表達式都可以省略.
例如: for(;;) 語句 相當于 while(1) 語句
即不設初值,不判斷條件(認為表達式 2為真值),循環變量不增值.無終止地執行循環體.
(6) 表達式 1可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式.
例如: for(sum=0;i<=100;i++) sum=sum+i;
表達式 3也可以是與循環控制無關的任意表達式.
表達式 1和表達式 3可以是一個簡單的表達式,也可以是逗號表達式,即包含一個以上的簡單表達式,中間 用逗號間隔.例如:
for(sum=0,i=1;i<=100;i++) sum=sum+i;或for(i=0,j=100;i<=j;i++,j--) k+=i*j;
表達式 1和表達式 3都是逗號表達式,各包含兩個賦值表達式,即同時設兩個初值,使兩個變量增值.
(7) 表達式一般是關系表達式(如i<=100)或邏輯表達式(如a<b && x<y),但也可以是數值表達式或字符表達式 ,只要其值為非零,就執行循環體.分析下面的例子:
a. for(i=0;(c=getchar())!='\n';i+=c);
在表達式 2中先從終端接收一個字符賦給c,然后判斷此賦值表達式的值是否不等于'\n'(換行符),如 果不等于'\n',就執行循環體.
注意: 此for語句的循環體為空語句,把本來要在循環體內處理的內容放在表達式 3中,作用是一樣的. 可見for語句功能強,可以在表達式中完成本來應在循環體內完成的操作.
b. for(;(c=getchar())!='\n';) printf("%c",c);
只有表達式 2,而無表達式 1和表達式 3.其作用是每讀入一個字符后立即輸出該字符,直到輸入一個" 換行"為止.請注意,從終端鍵盤向計算機輸入時,是在按回車鍵以后才送到內存緩沖區中去的.即不是 從終端敲入一個字符馬上輸出一個字符,而是按回車鍵后數據送入內存緩沖區,然后每次從緩沖區讀一 個字符,再輸出字符.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -