for循环背后的逻辑

4

我知道上面的问题不是很具体,也有关于for循环的解答线程。

我是编程新手,大部分的解答线程都更具体。

我的问题:

for循环背后的逻辑是什么?如何编写for循环?

简单来说:在编写for循环之前,你会考虑什么以及怎么做呢? 例如:初始化哪个变量等等

我在理解for循环方面存在问题,您的回答肯定会帮助像我这样的初学者。

谢谢 祝好


2
将for循环与while循环进行比较,你可以说,当你知道要循环多少次时,使用for循环,而当你知道停止条件时,使用while循环。 - Erik
这些很棒,你的作业应该会得到不错的分数。 - user159335
1
通过标题,我以为这可能是一个关于理论和最佳实践的问题,然而...对我来说很难分辨你在问什么。“初始化哪个变量”是让我关闭这个问题的原因,如果提供具体问题的具体示例,我们会在这里帮助你。但这个问题并不是这种情况。我不会锁定这个问题,社区可以不同意我的看法。 - Tim Post
你好Tim, 你说得完全正确,这个问题很模糊,我已经在问题中进行了说明。我得到的答案完全回答了我的问题,我想应该能够回答任何希望学习“for循环”逻辑的人。非常感谢。 - Peace
5个回答

2

最常见的for循环形式是使用一个新变量作为循环计数器,从零循环到(但不包括)上限。

此循环将从0循环到9:

for (int i = 0; i < 10; i++) {
  // code here
}

你可以为循环变量取任何有意义的名称。如果你没有好的名称,ijk是命名小型循环变量的旧惯例。
使用< 10而不是<= 9的目的是要循环十个项目。如果你在数组中循环项,则在条件中使用数组的长度:
for (int i = 0; i < anArray.Length; i++) {
  // access anArray[i]
}

for循环中有三个语句: 初始化语句循环条件语句后续更新语句。上述循环产生的代码与使用while循环相同:

int i = 0;
while (i < 10) {
  // code here
  i++;
}

for 循环的三个语句中,你可以放置任何你喜欢的内容,但是你应该尽量保持接近这种常见形式。这就是 for 循环通常的用法,人们很容易理解循环正在做什么。


那不应该是 while (i < 10) 吗? - Jouke van der Maas
@Jouke van der Maas:当然应该。感谢您发现了这个问题。 - Guffa

1

循环存在以重复执行某个代码块(由一个或多个命令组成)的方式。

您可以定义该代码块将执行多少次,并且在循环内部可以像普通本地变量一样使用循环迭代器。

每当我需要运行某些东西多次时,我就会使用循环 - 就这么简单。

通常,循环迭代器不会得到特殊名称,xin 都可以。

这是我用简单语言给出的建议 - 如果您有更具体的问题,请编辑您的问题并通过评论通知我,以便我可以根据回复编辑我的答案。


1
在编程中,当你需要重复执行某个动作已知次数时,可以使用 for 循环。
在 C# 中,你可以使用以下语法实现。
for(int i = 0; i < 10 ; i++)
{
    //here I am telling C# to run this loop while `i` is less than 10 where I am 
    ////starting i from 0 and incrementing its value after each iteration by 1. so this loop
    //will run 10 times as i reaches from 0 to 9 and will stop as soon as i turns to 10
}

你也可以使用变量代替常量10

例如,你可以要求用户告诉你想要运行循环的次数,并将其存储在变量x中,然后使用以下代码运行循环x

for(int i = 0 ; i < x ; i ++)
{
   // if x = 5 loop will run five times
}

0

for-loop 构造用于在我们想要执行一定次数的代码块时使用。例如,假设我想将数字1到5打印到控制台屏幕上,这里是一个天真的实现:

Console.WriteLine(1);
Console.WriteLine(2);
Console.WriteLine(3);
Console.WriteLine(4);
Console.WriteLine(5);

它运行良好,但如果要求更改为写出数字一到一百怎么办?这就是for循环的用处:

int max = 100;

for (int i = 1; i <= max; i++)
{
    Console.WriteLine(i);
}

分解如下:

  1. 初始化

    int i = 0; 将变量 i 设置为0,即循环执行的次数。

  2. 条件

    i <= max; 如果 i 的值小于或等于 max,则执行下一次迭代。

  3. 步骤

    i++; 在代码块执行后增加 i 的值,以准备进行下一次迭代。

希望这有所帮助。


0
值得注意的是,for循环不一定要计数变量的增加或减少,它可以执行任何遵循@aligray描述的模式的操作。
for(MethodThatDoesSomething(); MethodThatReturnsBool(); MethodThatGetsCalledEveryStep()) {  }

这是一个有效的 for 循环示例。

甚至可以使用 for 循环复制 foreach 循环:

  var i = new int[ ] { 1, 2, 3 };
  for( var enumerator = i.GetEnumerator( ); enumerator.MoveNext( ); ) {
    enumerator.Current.ToString( );
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接