与大多数其他编程语言一样,Java 支持嵌套循环。这意味着只是循环中的循环。在本文中,我们将了解如何在 Java 中使用嵌套循环。
Java 嵌套循环
如果一个循环被放置在另一个循环内,则称为嵌套循环。在第一遍中,外循环调用内循环,内循环运行完成,之后控制权转移到外循环的主体。在第二遍中,外循环再次调用内循环。依此类推,直到外循环结束。Java 中有四种类型的循环:
for
循环
while
循环
做...while
循环
for-each
循环
它们都支持嵌套循环。当必须满足两个条件且一个依赖于另一个时,使用嵌套循环结构。例如,如果您需要显示二维矩阵、半金字塔或乘法表。
Java 嵌套循环的工作原理
Java 中使用最多的循环可能是
for
,这在很大程度上是因为它非常通用并且使用它的代码非常容易阅读。
下面是嵌套for
循环的一般语法:
// outer loop
for (initialization; condition; increment) {
//write here your code
//nested loop
for(initialization; condition; increment) {
//write here your code
他是如何工作的?外循环开始。然后嵌套的
for
循环开始工作并遍历其索引直到满足条件,然后再次将工作传递给外循环,直到满足外循环的条件。听起来有点棘手,不是吗?嗯,结合具体的例子理解起来会容易很多,下面继续说吧。
嵌套for循环代码示例
这是一个经典的例子。让我们使用两个
for
循环打印出一个半金字塔。其中之一是嵌套的。
public class NestedLoopsDemo1 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j<=i; j++)
System.out.print("*");
System.out.println();
* ** *** **** ***** ****** ******* ******** ********* ***** *****
嵌套 while 循环代码示例
public class NestedLoopsDemo2 {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
int j = 0;
while (j <= i) {
System.out.print("*");
System.out.println();
输出与前面的示例相同:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
do
...while
循环类似于
while
循环。
主要区别在于, do...while
循环的主体在表达式检查之前执行一次。
嵌套的 foreach 循环代码示例
for-each循环可以像通常的
for
循环一样嵌套。下面是迭代二维数组的 嵌套
for-each
循环的示例。
public class NestedLoops2 {
public static void main(String[] args)
int[][] mainArray = { {5, 4, 3, 2, 1}, {7, 8, 9, 10, 11} };
for (int[] myArray : mainArray)
for (int i : myArray)
System.out.print(i+" ");
System.out.println("");
5 4 3 2 1 7 8 9 10 11
混合 for 和 while 循环示例
有时我们可以将不同类型的循环相互嵌套。例如,
for
inside
while
或
for
inside
for-each
。但是,这不是最佳的编程实践。这样的结构显着削弱了代码的可读性。所以专业的程序员尽量不要把它们混在一起。好吧,他们会这样做,但前提是确实需要。
还有一个小规则:如果您在while
和
for
之间进行选择,请尽可能使用
for 。
尽管如此,这里我们将有一个在
while中使用
for
循环的例子。让我们再次构建我们的半金字塔。
public class NestedLoopsDemo2 {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
System.out.println();
输出毫无意外:
* ** *** **** ***** ****** ******* ******** ********* ***** *****
CodeGym 是一个从零开始学习 Java 语言编程的在线课程。本课程是初学者掌握 Java 语言的绝佳方式。它包含 1200 多个可即时验证的任务,以及基本范围内的 Java 基础理论。为了帮助你在教育上取得成功,我们实现了一组激励功能:小测验、编码项目以及有关高效学习和 Java 语言开发人员职业方面的内容。