跳至內容

用戶:黑巧克/沙盒

維基百科,自由的百科全書
For loop flow diagram

在計算機科學中,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


相關條目