我理解上面提到的问题不是那么具体,并且有回复线程与for循环有关。
我是编程新手,大多数回答的帖子更具体。
我的问题:
for循环背后的逻辑是什么?如何编写for循环?
简单来说:在编写for循环之前,您如何以及如何看待? 示例:要初始化的变量等
我在理解循环时遇到问题,你的答案肯定会帮助像我这样的新手程序员......
由于 和平
答案 0 :(得分:2)
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
循环的方式,人们很容易理解循环正在做什么。
答案 1 :(得分:1)
循环存在以重复执行某些代码块(由一个或多个命令组成)。
您可以定义该代码块执行的次数,并且循环内部可以将循环迭代器用作普通的局部变量。
每当我需要多次运行时,我只会使用循环 - 就像那样简单。
通常循环迭代器没有特殊名称,x
,i
或n
就好了。
这是我用简单语言给出的两分钱 - 如果你有更具体的问题用它编辑你的问题并通过评论通知我,我可以用回复编辑我的答案。
答案 2 :(得分:1)
用于你必须重复一个动作很多次数的地方。
在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
}
答案 3 :(得分:0)
当我们想要执行特定次数的代码块时,使用for-loop
构造。例如,假设我想将数字1到5打印到控制台屏幕,这是一个简单的实现:
Console.WriteLine(1);
Console.WriteLine(2);
Console.WriteLine(3);
Console.WriteLine(4);
Console.WriteLine(5);
它工作正常,但如果要求改变说,将数字写入一百到一百怎么办?这是for-loop
帮助的地方:
int max = 100;
for (int i = 1; i <= max; i++)
{
Console.WriteLine(i);
}
打破它:
初始化程序
int i = 0;
将变量i
设置为0,这是循环执行的次数。
条件
i <= max;
如果i
的值小于或等于max
,则执行下一次迭代。
步骤
i++;
在执行代码块之后,在下一次迭代的预备中增加i
的值。
希望这有帮助。
答案 4 :(得分:0)
还值得注意的是,对于循环不必向上或向下计算变量,它可以做任何遵循@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( );
}