有人可以为我解释一下 - 因为(int i = 0; i< 8; i ++)

时间:2013-03-20 16:55:41

标签: syntax for-loop

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

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

6 个答案:

答案 0 :(得分:16)

这是一个循环说,好吧,每次i小于8时,我都会做代码块中的任何事情。每当i达到8时,我就会停下来。在循环的每次迭代之后,它将i递增1(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]);
}

这里的差异是数据大小的执行次数完全依赖,所以它是动态的。

答案 1 :(得分:5)

  

for (int i = 0; i&lt; 8; i ++)

这是一个for循环,它会多次执行下一个语句,具体取决于括号内的条件。

  

for( int i = 0 ; i&lt; 8; i ++)

首先设置i = 0

  

for(int i = 0; i&lt; 8 ; i ++)

i < 8时继续循环播放。

  

for(int i = 0; i&lt; 8; i ++

每当你进入循环时,将i增加1。

例如;

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

将按顺序调用do(0),do(1),... do(7),并在i达到8时停止(即i < 8为false)

答案 2 :(得分:3)

循环的通用视图是

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

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

答案 3 :(得分:3)

与下一个想法相同:

“从i = 0开始,而i小于8,并在括号末尾添加一个i,执行括号之间的指示”

它也与:

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

For句子是编码的基础,它的理解也是必要的。

这是重复n次相同指令,或浏览(或对每个元素做一些事情)数组的方法

答案 4 :(得分:2)

for(<first part>; <second part>; <third part>)
{
    DoStuff();
}

此代码的评估如下:

  1. 运行&lt;第一部分&gt;
  2. 如果&lt;第二部分&gt;是假的,跳到最后
  3. DoStuff();
  4. 运行&lt;第三部分&gt;
  5. 转到2
  6. 所以对你的例子来说:

    for (int i = 0; i < 8; i++)
    {
        DoStuff();
    }
    
    1. 将i设为0。
    2. 如果我不小于8,请跳到最后。
    3. DoStuff();
    4. 我+ +
    5. 转到2
    6. 所以循环运行一次,i设置为从0到7的每个值。注意i增加到8,但随后循环立即结束;它不会在i设置为8的情况下运行。

答案 5 :(得分:1)

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