2011-06-12 44 views
4

我明白上面的问题并不是特定的,并且有回答的有关for循环的线程。for循环后面的逻辑

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

我的问题:

背后是什么for循环和应该如何一个人的方法写一个for循环的逻辑是什么?

简而言之:在编写for循环之前,您和您的想法如何? 的例子:一个变量初始化等

我有问题的理解for循环,你的答案一定会帮助出芽像我这样的程序员..

感谢 和平

+2

比较for循环到while循环,你可以说,你用一个for循环,当你知道你有多少次会通过循环,并在知道停止条件时使用while循环。 – Erik 2011-06-12 10:46:46

+0

优秀的,应该为你的作业用这些做好准备。 – 2011-06-12 11:34:22

+1

通过标题,我认为这可能是一个关于理论和最佳实践的问题,但是..对于我来说,很难辨别你在问什么。 '初始化哪个变量'是让我关闭的东西,如果提供了特定问题的具体示例,我们将在此为您提供帮助。这个问题并非如此。我不锁定这个,社区可以自由地与我不同意。 – 2011-06-12 13:31:55

回答

1

环路的存在是为了执行某些块代码(由一个或多个命令组成)重复。

您可以定义该代码块将执行多少次,并且循环内部可以使用循环迭代器作为普通局部变量。

无论何时我需要多次运行某些东西,我都会使用循环 - 就像那样简单。

通常循环迭代器不会得到特殊名称,x,in就好了。

这些是我用简单语言给出的两美分 - 如果你有更具体的问题,用它编辑你的问题,并通过评论通知,所以我可以编辑我的答案与答复。

+0

非常感谢你 – Peace 2011-06-14 18:30:47

1

在for循环编程中,您可以在需要重复某个动作的地方使用数字已知的次数。

in 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

非常感谢你,这真的很有帮助 – Peace 2011-06-14 18:32:29

2

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

这个循环会从0到9:

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

您可以命名您的循环变量什么是有道理的。如果你没有一个好的名字,名字i,jk是一个用于命名小循环变量的旧惯例。

使用< 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循环,人们很容易理解循环在做什么。

+0

不应该是'while(i <10)'? – 2011-06-12 11:49:18

+0

@Jouke van der Maas:当然应该。感谢您的发现。 – Guffa 2011-06-12 12:04:44

+0

非常感谢,非常有帮助 – Peace 2011-06-14 18:32:03

0

for-loop结构用于我们想要执行一定数量的代码块。例如,假设我要打印的数字一到五到控制台屏幕,这里是一个天真的实现:

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); 
} 

其分解:

  1. 初始化程序

    int i = 0;设置变量i为0,这是次数的循环已执行。

  2. 条件

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

  3. 步骤

    i++;递增后的代码块已经被执行,在水面浮油为下一次迭代的的i值。

希望这会有所帮助。

+0

非常感谢,真的很有帮助 – Peace 2011-06-14 18:32:53

0

其还值得注意的是,对于不必须向上或向下数一个可变环,它可以做几乎任何遵循@aligray描述的模式:

for(MethodThatDoesSomething(); MethodThatReturnsBool(); MethodThatGetsCalledEveryStep()) { } 

是一个有效的循环,例如。

,你可以使用一个for循环,甚至复制foreach循环:

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

非常感谢,真的很有帮助 – Peace 2011-06-14 18:32:46

+0

很高兴帮助:) – aL3891 2011-06-14 19:42:17