马克扎克伯格曾经指出,计算机擅长执行重复命令。但对于人类来说,重复工作并不简单,我们根本不愿意连续多次重复同一件事,但是计算机可以做数百万次,永远不会感到无聊。如果你要向所有 Facebook 用户发送问候语,人手不够,时间不足。但是,你可以通过编写几行代码来让计算机来解决此任务。这就是循环的工作方式。循环让我们不重复相同的常规操作。
Java 中最常用的循环是所谓的定义循环或 for 循环。
![Java 的 for 循环 - 1]()
![Java 的 for 循环 - 2]()
如何在 Java 中编写 for 循环?常规的 for 循环
for 循环执行某些语句一定次数。例如,编写 50 次“我不能这样,嗬嗬,嗬”,或向你所有的朋友发送邀请是这种循环的典型任务。 最常见的 for 循环版本的语法:
for ([计时器初始化]; [检查条件]; [更改计数器])
{
// 语句
}
初始化表达式执行一次,然后计算条件,它应该是一个布尔表达式。- 当循环开始时,初始化执行。
- 当条件求值为假时,循环停止工作。

如何在 Java 中使用 for 循环?简单的例子。
这是一个特定的 Java for 循环示例。我们输出十遍“你好!”每次字符串都从新行开始并带行号。我们应该得到下一个输出:- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
- 你好!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ".你好!");
}
}
}
此代码的工作方式?
第 1 步。Counter i = 0。循环检查条件,i << 10,因此执行循环语句。它打印出短语“1. 你好!”。1 是一个字符串 i + 1 (因为我们从零开始计数,但第一行仍然是第一行)。计数器 i 递增。现在,i = 1。 第 2 步。计数器 i = 1。i < 10,所以获得短语“2. 你好!” 并且 i + 1 = 2。 … 第 10 步。计数器 i = 9,我们得到“10. 你好!” i 递增到 10。 第 11 步。计数器 i = 10. i < 10 ? 不,这是错误的。因此,循环结束。
while 循环和 for 循环之异同
在 Java 中,如果布尔条件成立,则无限循环或 while 循环将一直执行。while 循环的语法:
while (布尔条件)
{
循环语句...
}
你可以经常选择要使用的循环。这两个循环有时非常接近,可以同时使用。例如,下面是使用 while 循环编写的相同任务的代码(输出十次“你好!”并带有行号):
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // 这种方式使用计数器
while (j < 10) {
System.out.println(j + 1 + ".你好!");
j++;
}
}
}
不过,专业程序员不太喜欢使用 while 循环,而是尽可能使用 for 循环。for | while |
---|---|
如果我们已经知道迭代次数,将使用 for 循环。 | 如果我们不知道确切的迭代次数,将使用 while 循环。 |
初始化、条件检查和计数器更改已经融合在循环的语法中 | 循环内的初始化和条件检查。你还可以在语句中使用计数器。 |
无限 for 循环:
|
无限循环 while:
|
在 java 中如何退出 for 循环
通常 for 循环像流程一样运行,退出循环的自然方式是条件取 false 值。但是,有两个控制语句允许你在获得条件的 false 值之前退出循环 - break 和 continue。- break 可以退出当前循环体,就好像循环条件已求值为 false 一样。
- continue 会使循环跳转到下一步(迭代计数器)而不执行语句。
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"迈克", "达斯汀", "陌生人", "卢卡斯", "威尔"};
for (int i = 0; i < names.length; i++) {
// 如何中断 for 循环,java:检查是否在数组中有“陌生人” //字符串
if (names[i].equals("陌生人")) {
System.out.println("我不和陌生人聊天");
break;
}
System.out.println("你好," + names[i]);
}
}
}
程序执行的结果是:
你好,迈克
你好,达斯汀
我不和陌生人聊天
看到了吗?在与卢卡斯和威尔打招呼之前,我们离开循环。现在让我们使用 continue 来忽略“陌生人”,但留在循环内向其他朋友问好。
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"迈克", "达斯汀", "陌生人", "卢卡斯", "威尔"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("陌生人")) {
System.out.println("我不和陌生人聊天");
continue;
}
System.out.println("你好," + names[i]);
}
}
}
结果是:
你好,迈克
你好,达斯汀
我不和陌生人聊天
你好,卢卡斯
你好,威尔
太棒了!我们和所有的朋友打了招呼,但没有和陌生人说话。
for 循环的增强版本,即 for-each
for-each 是一种 for 循环,当你需要处理数组或集合的所有元素时使用。实际上,这个循环中并没有使用 for-each 这个短语。语法如下:
for (type itVar: array)
{
运算符块;
}
其中 type 是迭代变量的类型(与数组的数据类型相同),ItVar 是它的名称,array 是数组或者可以使用其他数据结构,例如 ArrayList。如你所见,没有计数器,迭代变量迭代数组或集合的元素,而不是下标值。
当执行这样的循环时,迭代变量按顺序分配数组或集合的每个元素的值,然后执行指定的语句块(或运算符)。
注意:for-each 循环可以应用于数组和任何实现 java.lang.Iterable 接口的类。
让我们通过问候朋友来解决同样的问题,忽略陌生人(“陌生人”),但这次使用 for-each 循环。
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"迈克", "达斯汀", "陌生人", "卢卡斯", "威尔"};
// for-each 循环,Java 代码
for (String name : names) {
if (name.equals("陌生人")) {
System.out.println("我不和陌生人聊天");
continue;
}
System.out.println("你好," + name);
}
}
}
GO TO FULL VERSION