2011-11-05 87 views
0

我想问你们一个问题。你看,我知道一个for循环是什么,但有人可以也许解释了如何一个作品,只是为了帮我拿我的头周围,一个例子是:为了什么?

for(int i = 0; i < 10; i++) { 
    System.out.println("hello"); 
} 

现在很明显,这将只是打印你好10次​​进入控制台,但除此之外,我想知道for循环是如何工作的。

很抱歉,如果我搞糊涂的人问这个 - 肖恩

+2

#1资源:http://download.oracle.com/javase/tutorial/java/nutsandbolts/for.html – BalusC

+0

我不确定你在问什么。迭代是计算机编程的核心概念。例如,如何检查一千万件物品的清单? –

+0

@JustinSatyr:看看Ted Hopp的答案,下面。 –

回答

3

The for Statement

for语句提供了一个紧凑的方式来遍历值的范围。程序员经常将其称为“for循环”,因为它的重复循环方式直到满足特定的条件。 for语句的一般形式可表示如下:

for (initialization; termination; increment) { 
    statement(s) 
} 

当使用这个版本的for语句,请记住:

  • 初始化表达式初始化循环;它会在循环开始时执行一次。
  • 当终止表达式计算结果为false时,循环终止。
  • 递增表达式在循环的每次迭代之后被调用;这个表达式增加或减少一个值是完全可以接受的。
+0

非常感谢很多人,我很喜欢简单的java,当你知道它时哈哈:D – Shaun

10

for循环在你的例子是本或多或少当量:

int i = 0; 
while (i < 10) { 
    System.out.println("hello"); 
    i++; 
} 

唯一的区别是与你的for循环,可变i只存在于循环的范围内。

使用相同的模式,每个for循环都可以转换为while循环。

for (init; test; continuation) { 
    // loop body 
} 

变为:

init; 
while (test) { 
    // loop body 
    continuation; 
} 

再次,唯一的区别是,在init声明的任何变量的作用域。

+0

美丽的答案谢谢 – Shaun

+0

这不是只有***的区别。如果在for循环中使用'continue;',我会增加,而在“等效”时它不会。 –

+0

@ArmenTsirunyan - 感谢您指出这一点。 “继续”声明违反了[结构化编程]的规则(http://en.wikipedia.org/wiki/Structured_programming)。 (所以'return','throws'和'break')。很难用'while'循环来建模。当我使用“唯一”的时候,我想到了OP的具体例子;我的选择应该更加谨慎。 –

0

好了,这是它是如何设置:

for (a; b; c)

“A”的东西是在循环的开始时进行。它实际上可以被排除在外,如果有必要,就像这样:

for (; b; c)

“B”必须是真实或虚假陈述(像我< 10,它要么是或者不是)。一旦“b”不再成立,循环就会停止。

“C”是在循环结束时完成的。

+0

实际上,'a','b'和'c'中的任何一个或全部都可以不在'for'循环中。 –

+0

我想你是对的,但不会遗漏'b'使它无限? – Cg2916

+0

如果你抛弃'b',那么它确实是一个无限循环。唯一的出路是'break','return'或抛出异常。 –