1. 程式人生 > >C語言for迴圈

C語言for迴圈

c語言中的for迴圈語句使用最為靈活,不僅可以用於迴圈次數已經確定的情況,而且可以用於迴圈次數不確定而只給出迴圈結束條件的情況,它完全可以代替while語句.
for(表示式 1;表示式 2;表示式 3)語句
它的執行過程如下:
(1)先求表示式 1.
(2)求表示式2,若其值為真(值為非0),則執行for語句中指定的內嵌語句,然後執行下面第三步 做若為

假(值為0),則結束迴圈,轉到第5步.
(3)求解表示式3
(4)轉回上面第(2)步驟繼續執行;
(5)結束迴圈,執行for語句下面的一個語句;
for(迴圈變數賦初值;迴圈條件;迴圈變數增值)語句

for(i=1;i<=100;i++)sum=sum+i;

它的執行相當於

i=1; 
while(i<=100){ 
sum=sum+i; 
i++; 
}

顯然,用for語句更簡單、方便。
說明:
(1)for語句的一般形式中的"表示式1"可以省略,此時應在for語句之前給迴圈變數賦初值.注意省略表示式1時,其後的分號不能省略.如for(;i<=100;i++){....};
(2)如果表示式2省略 即不判斷迴圈條件,迴圈無終止地迴圈下去,也就是認為表示式2始終為真.
例如:for(i=1;;i++){.....};
相當於

i=1; 
while(1) 
{sum=sum+1; 
i++; 
}

(3)表示式3也可以省略,但此時程式設計者應另外設法保證迴圈能正常結束.如:

for(i=1;i<=100;) 
{sum=sum+1; 
i++; 
}

這個例子的迴圈增量沒有放在表示式三的位置 而是作為迴圈體的一部分 其效果是一樣的.
(4)可以省略表示式1表示式3,只有表示式2 即只給迴圈條件.

for(;i<=100;) 

sum=sum+i; 
i++; 

這個相當於 
whlie(i<=100) 

sum=sum+i; 
i++; 
}

(5)三個表示式都可以省略,如:
for(;;)語句
相當於
while(1)語句
即不設初值 不判斷條件(認為表示式2為真值)迴圈變數不增值,無終止的執行迴圈體.
(6)表示式1也可以是設定迴圈變數初值的賦值表示式,也可以是與迴圈變數無關的其他表示式.如:

for(sum=0;i<=100;i++) 

sum=sum+i; 

for(sum=0,i=0;i<=100;i++) 

sum=sum+i; 
}