User:黑巧克/沙盒
< User:黑巧克
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/0/06/For-loop-diagram.png/220px-For-loop-diagram.png)
Loop constructs |
---|
do-while循环 |
while迴圈 |
For loop |
Foreach循环 |
無窮迴圈 |
控制流程 |
在計算機科學中,For迴圈(英語:For loop)是一種程式語言的迭代陳述,能夠讓程式碼反覆的執行。
它跟其他的迴圈,如while迴圈,最大的不同,是它擁有一個迴圈計數器,或是迴圈變數。這使得For迴圈能夠知道在迭代過程中的執行順序。
簡介
For迴圈一般使用於需要重複執行的程式,For迴圈的結構包含指標,終結條件,遞增。另外,也像其他的迴圈,可以用continue和break控制流程。
應用範例
以c語言為例:
作為無窮迴圈
for (;;)
printf("just keep going on!");
配合矩陣
矩陣賦值:
for(int i=0;i<bound_of_matrix;i++)
matrix[i] = i;
for(int i=0;i<bound_of_x;i++)
for(int j=0;j<bound_of_y;j++)
matrix[i][j] = j;
常見的錯誤
無窮迴圈
這裡指的是不是故意的無窮迴圈,容易導致當機
for (int i=0;i>10;i--)
printf("confused");
超出界線
編譯器會顯示out of bound,通常是指嘗試取矩陣界線外的值。
迴圈內的變數
迴圈內的變數在出迴圈之後,便無法使用。
不同語言的For迴圈
BASH
for (( i = 1; i <= 5; i++ ))
do
echo $i # just print value of i
done
C語言
for (counter = 1; counter <= 5; counter++)
//statement;
FORTRAN
do counter = 1, 5, 1
write(*, '(i2)') counter
end do
JAVA
for(int i = 0; i < 5; i++){
//循环语句;
}
Lua
for i = 1, 5, 2 do
print(i)
end
PHP
for ($i = 0; $i < 5; $i++) {
# statements;
}
VB
For i = 1 To 5
'循环语句
Next i
- VB的For循环和大多数其他语言有一个不同之处——在其他语言中,循环的结束条件在每次循环时会重新计算,但在VB中,只有第一次进入循环语句时会被计算,之后就算更改也没有效果。
C / C++ / Java / C#代码:
int j = 5, x = 0;
for (int i = 1; i <= j; ++i)
{
++x;
j = 1;
}
// x的值为1
VB代码:
Dim j As Integer = 5, x As Integer = 0
For i = 1 to j
x = x + 1
j = 1
Next i
' x的值为5