For迴圈
for迴圈(
![](https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/For-loop-diagram.png/220px-For-loop-diagram.png)
它跟其他
for 迴圈的 種類
编辑
傳統 的 for 迴圈 for-loops
编辑
C
- 以Java
為 例 :
for (INITIALIZATION; CONDITION; AFTERTHOUGHT)
{
// Code for the for-loop's body goes here.
}
在 此以Java為 例 :
for (int i=0; i<100; i++) // Prints the numbers 0 to 99 (and not 100), each separated by a space.
{
System.out.print(i);
System.out.print(' ');
}
System.out.println();
使用 指標 的 for迴圈
编辑
這種
for item in some_iterable_object:
do Something
do Something Else
矩 陣 化 for迴圈
编辑
for all
A(i)
i = 2
),A(i - 1)
for all
A
.
for i := 2 : N - 1 do A(i) := [A(i - 1) + A(i) + A(i + 1)] / 3; next i; for all i := 2 : N - 1 do A(i) := [A(i - 1) + A(i) + A(i + 1)] / 3;
應用 範 例
编辑
以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;
常見 的 錯誤
编辑
無窮 迴圈
编辑
這裡
- 以C
語 言 為 例 :
for (int i=0;i<10;i--)
printf("confused");
超 出 界 限
编辑
迴圈內的變數
编辑
迴圈內的
發展 概論
编辑
1957: FORTRAN
编辑DO
迴圈 DO
迴圈
DO label counter = first, last, step
statements
label statement
DO 9, COUNTER = 1, 5, 1
WRITE (6,8) COUNTER
8 FORMAT( I2 )
9 CONTINUE
Fortran 77
do counter = 1, 5
write(*, '(i2)') counter
end do
如果
* DO loop example.
PROGRAM MAIN
SUM SQ = 0
DO 199 I = 1, 9999999
IF (SUM SQ.GT.1000) GO TO 200
199 SUM SQ = SUM SQ + I**2
200 PRINT 206, SUMSQ
206 FORMAT( I2 )
END
1958: Algol
编辑Algol
1960: COBOL
编辑COBOL
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 1000
ADD I**2 TO SUM-SQ.
END-PERFORM
如果PERFORM
1964: BASIC
编辑BASIC
For I = 1 to 5;
Print I;
Next I
1964: PL/I
编辑以下 為 PLI使用 例 :
do counter = 1 to 5 by 1; /* "by 1" is the default if not specified */
/*statements*/;
end;
LEAVE
1968: Algol 68
编辑Algol68 很
FOR i FROM 1 BY 2 TO 3 WHILE i≠4 DO ~ OD
1970: Pascal
编辑for Counter := 1 to 5 do
(*statement*);
1972: C/C++
编辑for (initialization; condition; increment/decrement)
statement
1972: Smalltalk
编辑1980: Ada
编辑for Counter in 1 .. 5 loop
-- statements
end loop;
1980: Maple
编辑Maple
for i from f by b to t while w do # loop body od;
for e in c while w do # loop body od;
1982: PostScript
编辑[initial] [increment] [limit] { ... } for
1 1 6 {STATEMENTS} for
1983: Ada 83 and above
编辑procedure Main is
Sum_Sq : Integer := 0;
begin
for I in 1 .. 9999999 loop
if Sum_Sq <= 1000 then
Sum_Sq := Sum_Sq + I**2
end if;
end loop;
end;
1984: MATLAB
编辑for i = 1:5
-- statements
end
1987: Perl
编辑for ($counter = 1; $counter <= 5; $counter++) { # implictly or predefined variable
# statements;
}
for (my $counter = 1; $counter <= 5; $counter++) { # variable private to the loop
# statements;
}
for (1..5) { # variable impicitly called $_; 1..5 creates a list of these 5 elements
# statements;
}
statement for 1..5; # almost same (only 1 statement) with natural language order
for my $counter (1..5) { # variable private to the loop
# statements;
}
1988: Mathematica
编辑Do[f[x], {x, 0, 1, 0.1}]
For[x= 0 , x <= 1, x += 0.1,
f[x]
]
1989: Bash
编辑*第 一 種
for i in 1 2 3 4 5
do
# must have at least one command in loop
echo $i # just print value of i
done
*第 二 種
for (( i = 1; i <= 5; i++ ))
do
# must have at least one command in loop
echo $i # just print value of i
done
1990: Haskell
编辑forM_ [1..5] $ \indx -> do statements
如果你想
import Control.Monad as M
forLoopM_ :: Monad m => a -> (a -> Bool) -> (a -> a) -> (a -> m ()) -> m ()
forLoopM_ indx prop incr f = do
f indx
M.when (prop next) $ forLoopM_ next prop incr f
where
next = incr indx
forLoopM_ (0::Int) (< len) (+1) $ \indx -> do -- whatever with the index
1991: Oberon-2, Oberon-07, or Component Pascal
编辑FOR Counter := 1 TO 5 DO
(* statement sequence *)
END
1991: Python
编辑for counter in range(1, 6): # range(1, 6) gives values from 1 to 5 inclusive (but not 6)
# statements
1993: AppleScript
编辑repeat with i from 1 to 5
-- statements
log i
end repeat
1993: Lua
编辑for i = start, stop, interval do
-- statements
end
這個
for i = 1, 5, 2 do
print(i)
end
1 3 5
1995: Java
编辑for (int i = 0; i < 5; i++) {
//perform functions within the loop;
//can use the statement 'break;' to exit early;
//can use the statement 'continue;' to skip the current iteration
}
1995: JavaScript
编辑JavaScript
for (let i = 0; i < 5; i++) {
// ...
}
1995: PHP
编辑for ($i = 0; $i <= 5; $i++)
{
for ($j = 0; $j <= $i; $j++)
{
echo "*";
}
echo "<br>";
}
1995: Ruby
编辑for counter in 1..5
# statements
end
5.times do |counter| # counter iterates from 0 to 4
# statements
end
1.upto(5) do |counter|
# statements
end
1996: OCaml
编辑請
(* for_statement := "for" ident '=' expr ( "to" ∣ "downto" ) expr "do" expr "done" *)
for i = 1 to 5 do
(* statements *)
done ;;
for j = 5 downto 0 do
(* statements *)
done ;;
1998: ActionScript 3
编辑for (var counter:uint = 1; counter <= 5; counter++){
//statement;
}
參考 文獻
编辑
- ^ For loops in C++. [2016-03-06]. (
原始 内容 存 档于2016-03-05). - ^ PostScript Language Reference. Addison-Wesley Publishing Company. : 596. ISBN 0-201-37922-8.
- ^ OCaml expression syntax. [2016-03-06]. (
原始 内容 存 档于2013-04-12).
https://web.archive.org/web/20180906124543/http://terms.naer.edu.tw/detail/2337520/