我知道上面的问题不是很具体,也有关于for循环的解答线程。
我是编程新手,大部分的解答线程都更具体。
我的问题:
for循环背后的逻辑是什么?如何编写for循环?
简单来说:在编写for循环之前,你会考虑什么以及怎么做呢? 例如:初始化哪个变量等等
我在理解for循环方面存在问题,您的回答肯定会帮助像我这样的初学者。
谢谢 祝好
我知道上面的问题不是很具体,也有关于for循环的解答线程。
我是编程新手,大部分的解答线程都更具体。
我的问题:
for循环背后的逻辑是什么?如何编写for循环?
简单来说:在编写for循环之前,你会考虑什么以及怎么做呢? 例如:初始化哪个变量等等
我在理解for循环方面存在问题,您的回答肯定会帮助像我这样的初学者。
谢谢 祝好
最常见的for
循环形式是使用一个新变量作为循环计数器,从零循环到(但不包括)上限。
此循环将从0循环到9:
for (int i = 0; i < 10; i++) {
// code here
}
i
、j
和k
是命名小型循环变量的旧惯例。< 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循环存在以重复执行某个代码块(由一个或多个命令组成)的方式。
您可以定义该代码块将执行多少次,并且在循环内部可以像普通本地变量一样使用循环迭代器。
每当我需要运行某些东西多次时,我就会使用循环 - 就这么简单。
通常,循环迭代器不会得到特殊名称,x
、i
或 n
都可以。
这是我用简单语言给出的建议 - 如果您有更具体的问题,请编辑您的问题并通过评论通知我,以便我可以根据回复编辑我的答案。
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
}
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);
}
分解如下:
初始化
int i = 0;
将变量 i
设置为0,即循环执行的次数。
条件
i <= max;
如果 i
的值小于或等于 max
,则执行下一次迭代。
步骤
i++;
在代码块执行后增加 i
的值,以准备进行下一次迭代。
希望这有所帮助。
for(MethodThatDoesSomething(); MethodThatReturnsBool(); MethodThatGetsCalledEveryStep()) { }
这是一个有效的 for 循环示例。
甚至可以使用 for 循环复制 foreach 循环:
var i = new int[ ] { 1, 2, 3 };
for( var enumerator = i.GetEnumerator( ); enumerator.MoveNext( ); ) {
enumerator.Current.ToString( );
}