1.比较循环:for
vswhile
循环while
可以用在任何一个语句或一组语句需要多次执行的地方。但在所有可能的情况中,有一个值得强调。
我们谈论的是程序员(程序的创建者)事先知道循环应该执行多少次的情况。这通常通过声明一个特殊的计数器变量,然后在1
循环的每次迭代中增加(或减少)该变量来处理。
一切似乎都按预期工作,但不是很方便。在循环之前,我们设置计数器变量的初始值。然后在条件中我们检查它是否已经达到最终值。但是我们通常在循环体的最后更改值。
如果循环体很大怎么办?或者如果我们有几个嵌套循环?通常,在这些情况下,希望将所有这些关于计数器变量的信息收集在一个地方。这就是我们for
在 Java 中使用循环的原因。它看起来也不是很复杂:
for (statement 1; condition; statement 2)
{
block of statements
}
一个while
循环只有括号中的一个条件,但是一个for
循环添加了两个用分号分隔的语句。
实际情况比听起来简单:编译器将for
循环转换为普通while
循环,如下所示:
statement 1;
while (condition)
{
block of statements
statement 2;
}
或者更好的是,让我们用一个例子来证明这一点。下面的两个代码片段是相同的。
选项1 | 选项 2 |
---|---|
|
|
我们只是将与计数器变量相关的所有代码聚集到一个地方i
。
在for
循环中,语句 1在循环本身开始之前只执行一次。这可以在第二个代码片段中清楚地看到
语句 2的执行次数与循环体相同,每次都在整个循环体执行完后执行
2.for
循环使用的地方
循环for
可能是 Java 中使用最多的循环类型。它无处不在,对于程序员来说,它只是比while
循环更清晰、更方便。实际上任何while
循环都可以转换为for
循环。
例子:
while循环 | for循环 |
---|---|
|
|
|
|
|
|
|
|
|
|
注意最后一个例子。缺少使用循环计数器的语句。没有柜台,也没有声明。
在for
循环中,Java 允许您省略“初始化计数器的语句”和“更新计数器的语句”。甚至可以省略定义循环条件的表达式。
3. 使用for
循环的细微差别
for
关于使用循环和break
语句的重要一点continue
。
break
循环中的语句与循环for
中的语句相同while
——它会立即终止循环。语句continue
会跳过循环体,但不会statement 2
(这会更改循环计数器)。
让我们再看看for
和while
循环是如何相关的。
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
如果语句在continue
for
循环中执行,则跳过语句块的其余部分,但语句 2 (与循环的计数器变量一起使用的语句for
)仍会执行。
让我们回到我们的示例,跳过可被 7 整除的数字。
此代码将永远循环 | 这段代码可以正常工作 |
---|---|
|
|
使用循环的代码while
将无法运行 — i 永远不会大于 7。但是使用for
循环的代码可以正常运行。
4. 比较 for 循环:Java 与 Pascal
顺便说一下,Pascal 也有一个For
循环。通常,基本上每种编程语言都有一个。但是在 Pascal 中是非常清楚的。例子:
帕斯卡 | 爪哇 |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION