📜  通过在Java中引用其名称来打破任何外部嵌套循环

📅  最后修改于: 2022-05-13 01:55:26.788000             🧑  作者: Mango

通过在Java中引用其名称来打破任何外部嵌套循环

嵌套循环 是循环中的循环,外循环体中的内循环。

在职的:

  1. 外循环的第一遍触发内循环,它执行到完成。
  2. 然后外循环的第二遍再次触发内循环。
  3. 如此重复直到外循环结束。
  4. 内循环或外循环中的中断都会中断此过程

嵌套循环的函数:

Java
// Nested for loop
  
import java.io.*;
class GFG {
  
    public static void main(String[] args)
    {
  
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print("GFG! ");
            }
            System.out.println();
        }
    }
}


Java
// Naming the loop
  
import java.io.*;
  
class GFG {
  
    public static void main(String[] args)
    {
  
    // Type the name outside the loop
    outer:
        for (int i = 0; i < 5; i++) {
            System.out.println("GFG!");
        }
    }
}


Java
// Break statements and naming the loops
  
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
    // Using Label for outer and for loop
    outer:
        for (int i = 1; i <= 3; i++) {
        // Using Label for inner and for loop
        inner:
            for (int j = 1; j <= 3; j++) {
                if (j == 2) {
                    break inner;
                }
                System.out.println(i + " " + j);
            }
            if (i == 2) {
                break outer;
            }
        }
    }
}


输出
GFG! GFG! GFG! 
GFG! GFG! GFG! 
GFG! GFG! GFG! 

标记循环:

这是我们如何为循环标记名称:

labelname :for(initialization;condition;incr/decr){  
    //code to be executed  
}  

Java

// Naming the loop
  
import java.io.*;
  
class GFG {
  
    public static void main(String[] args)
    {
  
    // Type the name outside the loop
    outer:
        for (int i = 0; i < 5; i++) {
            System.out.println("GFG!");
        }
    }
}
输出
GFG!
GFG!
GFG!
GFG!
GFG!

标记循环的规则:

  1. 循环的标签必须是唯一的以避免混淆。
  2. 在 break 语句中使用范围内的标签。 (下面是一个实现)

Java

// Break statements and naming the loops
  
import java.lang.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
    // Using Label for outer and for loop
    outer:
        for (int i = 1; i <= 3; i++) {
        // Using Label for inner and for loop
        inner:
            for (int j = 1; j <= 3; j++) {
                if (j == 2) {
                    break inner;
                }
                System.out.println(i + " " + j);
            }
            if (i == 2) {
                break outer;
            }
        }
    }
}
输出
1 1
2 1