9

有人可以用最简单的术语解释一下,就好像你在和一个白痴说话(因为你是),这段代码实际上在说/在做什么

for (int i = 0; i < 8; i++)
4

6 回答 6

24

这是一个循环,它说,好吧,每次i小于 8 时,我都会执行代码块中的任何操作。i到了8点,我就停下来。循环每次迭代后,递增i1 ( i++),这样循环最终会在满足i < 8(i变为 8,因此不再小于) 条件时停止。

例如,这个:

for (int i = 0; i < 8; i++)
{
   Console.WriteLine(i);
}

将输出:01234567

看看代码是如何执行 8 次的?

就数组而言,当您不知道数组的大小但又想对其中的每一项进行操作时,这会很有帮助。你可以做:

免责声明:以下代码会因语言而异,但原理保持不变

Array yourArray;

for (int i = 0; i < yourArray.Count; i++)
{
    Console.WriteLine(yourArray[i]);
}

这里的区别是执行次数完全取决于数组的大小,所以它是动态的。

于 2013-03-20T16:56:58.473 回答
9

for (int i = 0; i < 8; i++)

这是一个for循环,它将根据括号内的条件多次执行下一条语句。

for ( int i = 0 ; i < 8; i++)

从设置开始i = 0

对于 (int i = 0; i < 8 ; i++)

继续循环 while i < 8

对于 (int i = 0; i < 8; i++ )

每次你在循环中,增加i1。

例如;

for (int i = 0; i < 8; i++)
    do(i);

i会依次调用do(0)、do(1)、...do(7),达到8就停止(即为i < 8假)

于 2013-03-20T17:02:43.800 回答
4

循环的一般视图是

for (initialization; condition; increment-decrement){}

第一部分初始化代码。第二部分是条件,只要它为真,就会继续运行循环。最后一部分是循环每次迭代后将运行的内容。最后一部分通常用于递增或递减计数器,但并非必须如此。

于 2013-03-20T17:00:29.623 回答
4
for(<first part>; <second part>; <third part>)
{
    DoStuff();
}

此代码的评估方式如下:

  1. 运行 <第一部分>
  2. 如果 <second part> 为假,跳到最后
  3. 做东西();
  4. 运行 <第三部分>
  5. 转到 2

所以对于你的例子:

for (int i = 0; i < 8; i++)
{
    DoStuff();
}
  1. 将 i 设置为 0。
  2. 如果 i 不小于 8,则跳到最后。
  3. 做东西();
  4. 我++
  5. 转到 2

所以循环运行一次,i 设置为从 0 到 7 的每个值。注意 i 递增到 8,但随后循环立即结束;它不会在 i 设置为 8 时运行。

于 2013-03-20T17:01:54.813 回答
4

与下一个想法相同:

“从 i = 0 开始,而 i 小于 8,并在括号末尾的 i 上加一,执行括号内的说明”

它也与以下内容相同:

while( i < 8 )
{
    // instrucctions like:
    Console.WriteLine(i);
    i++;
}

For 语句是编码的基础,它对它的理解是有用的。

这是重复 n 次相同指令或浏览(或对每个元素执行某些操作)数组的方法

于 2013-03-20T17:07:57.983 回答
2
for (int i = 0; i < 8; i++) {
  //code
}

简单来说

int i = 0;
if (i < 8) //code
i = i + 1; //i = 1
if (i < 8) //code
i = i + 1;  //i = 2
if (i < 8) //code
i = i + 1;  //i = 3
if (i < 8) //code
i = i + 1; //i = 4
if (i < 8) //code
i = i + 1; //i = 5
if (i < 8) //code
i = i + 1; //i = 6
if (i < 8) //code
i = i + 1; //i = 7
if (i < 8) //code
i = i + 1; //i = 8
if (i < 8) //code - this if won't pass
于 2013-03-20T17:05:36.270 回答