用户:黑巧克/沙盒

维基百科,自由的百科全书
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


相关条目