C# for循环的输出是如何工作的?

C# for循环的输出是如何工作的?,c#,for-loop,C#,For Loop,嘿,伙计们,我正在测试for循环的输出。但我似乎不明白这个输出怎么变成11 public void button1_Click(object sender, EventArgs e) { int i; for (i = 1; i <= 10; i += 2) { } MessageBox.Show("The number is " + i); } } public void按钮1\u单击(对象发送者,

嘿,伙计们,我正在测试for循环的输出。但我似乎不明白这个输出怎么变成11

public void button1_Click(object sender, EventArgs e)
{
        int i;
        for (i = 1; i <= 10; i += 2)
        {
        }
        MessageBox.Show("The number is " + i);
    }
}
public void按钮1\u单击(对象发送者,事件参数e)
{
int i;

对于(i=1;i循环的最后一次迭代是在
i=9
时。循环以
i+=2
终止,这将为您提供
i=11
for
循环在
1
处开始
i
,并不断地将
2
添加到
i
,在
i
大于
10时停止。这是第一次发生在
i==11
,因此循环退出,并且
i
仍然
11

实际上并不清楚您期望的是什么,但看看发生了什么:

  • i
    以1开始。1小于或等于10,因此它进入循环体
    • 循环体什么也不做
    • 在循环体的末尾,
      i
      增加2
  • i
    现在具有值3。3小于或等于10,因此它进入循环体
    • 循环体什么也不做
    • 在循环体的末尾,
      i
      增加2
  • i
    现在具有值5。5小于或等于10,因此它进入循环体
    • 循环体什么也不做
    • 在循环体的末尾,
      i
      增加2
  • i
    现在具有值7。7小于或等于10,因此它进入循环体
    • 循环体什么也不做
    • 在循环体的末尾,
      i
      增加2
  • i
    现在具有值9。9小于或等于10,因此它进入循环体
    • 循环体什么也不做
    • 在循环体的末尾,
      i
      增加2
  • i
    现在的值为11。11不小于或等于10,因此循环终止
  • 1
    的值已打印出来-仍然是11

如果将消息框放入循环中:

int i;
for (i = 1; i <= 10; i += 2)
{
  MessageBox.Show("The number is " + i);
}
inti;

对于(i=1;i而言,由于循环遍历结果的方式,循环基本上无法终止

i=1的值

问题是你把
i+=2

这会导致问题,因为它会像这样贯穿您的所有价值观:


  • i=1
    :你的
    i失败了,你比我更清楚为什么,回答得很好。
    
    int i;
    for(i = 1, i <= 5, i +=1 );
    
    int i;
    for(i = 5, i <= 20, i += 5);