For迴圈
for迴圈（）在計算機科學是一種程式語言的迭代陳述，能夠讓程式碼反覆的執行。
它跟其他的迴圈，如while迴圈，最大的不同，是它擁有一個迴圈計數器，或是迴圈變數。這使得for迴圈能夠知道在迭代過程中的執行順序。
C語言中傳統的for-loop包含三個部分：初始化、條件、遞增，這三個部分都是可有可無的。
for (INITIALIZATION; CONDITION; AFTERTHOUGHT)
初始化是宣告（或者賦值）任何需要的變數的動作。如果你要使用多個變數，則變數的種類要一致。條件的部分則是檢查是否離開這個迴圈，也就是讓程式碼往下執行。如果條件判斷為假，則離開迴圈。遞增在每跑一次迴圈都會重複執行一次。
for (int i=0; i<100; i++) // Prints the numbers 0 to 99 (and not 100), each separated by a space. System.out.println();
這種形式的for迴圈是大多數其他for迴圈的變革：他允許除了數字以外的計數方式。他通常用隱含或外顯指標的方式呈現，而在此迴圈變數會依序表示。以下是一個代表性的例子(語言：Python)：
for item in some_iterable_object: 有一些語言支援比較特別的for迴圈，如同它可以同時處理所有的指標in parallel，像是在FORTRAN 95中的codice_1語法。 舉例來說，在以下的for迴圈虛擬碼片段，當計算codice_2的新的值，除了第一個(也就是 codice_3)，codice_4的參照會得到新的值。 然而，在codice_1 版本，每個計算都會使用一開始的值，不會更改 codice_6. 和一般的for迴圈可能差距比較大。 以c語言為例：
for (;;)
這個程式碼會不斷的印出"just keep going on!"。 矩陣賦值：
for(int i=0;i編譯器會顯示out of bound，通常是指嘗試取矩陣界限外的值。
迴圈內的變數在出迴圈之後，便無法使用。 主要緣起為許多需要重複執行的程式碼，而不一樣的程式語言也會有不一樣的語法型式。
在Fortran 的codice_7 迴圈 同等於for迴圈。 Fortran的 codice_8 迴圈語法為： 接下來的兩個例子做出來的結果等同於其他語言的三個參數的for迴圈。其中變數COUNTER被初始化為1，以1遞增，並且到5的時候停下。
8 FORMAT( I2 ) 9 CONTINUE
Fortran 77 或之後的版本，也可能寫成：
do counter = 1, 5 end do
如果遞增為1，則遞增的部分可以省略。例如：
PROGRAM MAIN 199 SUM SQ = SUM SQ + I**2 200 PRINT 206, SUMSQ 206 FORMAT( I2 ) Algol 在Algo158首次正式格式化。
COBOL在許多努力之下，在1959年終正式格式化。他使用PERFORM 動詞，而PERFORM動詞有很多功能，像是後來加上的＂結構化＂的語法，像是 END-PERFORM。忽略宣告和初始化變數的必要，類似for迴圈的語法為：
如果PERFORM有TEST AFTER，這個迴圈的執行的結果會有點不同：迴圈內的程式會被執行至少一次。 BASIC 中的迴圈有時稱為 for-next迴圈。 For I = 1 to 5; Next I 由IBM公司在1950年代發明的第三代高級程式語言， 有些類似PASCAL語言。
do counter = 1 to 5 by 1; /* "by 1" is the default if not specified */ "LEAVE" 指令可以用來結束迴圈，像c語言的break，而"ITERATE"則像continue。
Algol68 很類似現在的for語言了：
FOR i FROM 1 BY 2 TO 3 WHILE i≠4 DO ~ OD
for Counter := 1 to 5 do for (initialization; condition; increment/decrement)
for Counter in 1 .. 5 loop end loop; Maple有兩種型式的for迴圈，一個是指標一定範圍的值，另一個是指標一定大小的容器。 第一種：
第二種：
他的for迴圈 codice_9 初始化一個內部的變數, 並且執行到他不大於限制的值(若遞增為負則以此類推)。
1 1 6 {STATEMENTS} for
procedure Main is begin end;
for i = 1:5  end
for ($counter = 1; $counter <= 5; $counter++) { # implictly or predefined variable for (my $counter = 1; $counter <= 5; $counter++) { # variable private to the loop for (1..5) { # variable impicitly called $_; 1..5 creates a list of these 5 elements statement for 1..5; # almost same (only 1 statement) with natural language order for my $counter (1..5) { # variable private to the loop
Do[f[x], {x, 0, 1, 0.1}]
For[x= 0 , x <= 1, x += 0.1,
for i in 1 2 3 4 5 do done
for (( i = 1; i <= 5; i++ )) do done
forM_ [1..5] $ \indx -> do statements
如果你想要用更正式的方式存 [1..5]的內容，一個比較官方的方式為： import Control.Monad as M
forLoopM_ :: Monad m => a -> (a -> Bool) -> (a -> a) -> (a -> m ()) -> m () forLoopM_ indx prop incr f = do
並且可以這樣使用：
FOR Counter := 1 TO 5 DO END
for counter in range(1, 6): # range(1, 6) gives values from 1 to 5 inclusive (but not 6)
repeat with i from 1 to 5 end repeat
for i = start, stop, interval do end
這個程式碼  for i = 1, 5, 2 do end即會印出： 1 3 5
for (int i = 0; i < 5; i++) {
JavaScript 支援像是C語言的三個參數的迴圈，並且支援break和continue。
for (let i = 0; i < 5; i++) {
for ($i = 0; $i <= 5; $i++)
for counter in 1..5 end
5.times do |counter| # counter iterates from 0 to 4 end
1.upto(5) do |counter| end 請參考
for i = 1 to 5 do
for j = 5 downto 0 do
for (var counter:uint = 1; counter <= 5; counter++){
https://web.archive.org/web/20180906124543/http://terms.naer.edu.tw/detail/2337520/