zoukankan      html  css  js  c++  java
  • break和continue在多重循环中使用

    break和continue在多重循环中使用

    关于break和continue在java中,break的作用是跳出循环,continue的作用是跳出本次循环。
    我们一般情况下,这样使用:

    public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            System.out.println("break循环结果:");  
            for (int i = 0; i < 5; i++) {  
                for (int j = 0; j < 5; j++) {  
                    System.out.println("i=" + i + ",j=" + j);  
                    if (j == 2)  
                        break;  
                }  
            }  
            System.out.println("continue循环结果");  
            for (int i = 0; i < 5; i++) {  
                for (int j = 0; j < 5; j++) {  
                    if (j == 2)  
                        continue;  
                    System.out.println("i=" + i + ",j=" + j);  
                      
                }  
            }  
        }  
    

    运行结果如下:
    break循环结果:
    i=0,j=0
    i=0,j=1
    i=0,j=2
    i=1,j=0
    i=1,j=1
    i=1,j=2
    i=2,j=0
    i=2,j=1
    i=2,j=2
    i=3,j=0
    i=3,j=1
    i=3,j=2
    i=4,j=0
    i=4,j=1
    i=4,j=2
    continue循环结果
    i=0,j=0
    i=0,j=1
    i=0,j=3
    i=0,j=4
    i=1,j=0
    i=1,j=1
    i=1,j=3
    i=1,j=4
    i=2,j=0
    i=2,j=1
    i=2,j=3
    i=2,j=4
    i=3,j=0
    i=3,j=1
    i=3,j=3
    i=3,j=4
    i=4,j=0
    i=4,j=1
    i=4,j=3
    i=4,j=4

    以上是跳出单层循环的情况,而需要跳出多层循环时,我们通常在外层循环中做有关的判断,再进行跳出,但除了这种方法外,还可以在外层循环前面定义一个标号,然后在内层循环中使用带有标号break或者continue的语句,就可以直接跳出多重循环,测试代码如下:

    public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            System.out.println("break循环结果:");  
            grade1:  
            for (int i = 0; i < 5; i++) {  
                for (int j = 0; j < 5; j++) {  
                    System.out.println("i=" + i + ",j=" + j);  
                    if (j == 2)  
                        break grade1;  
                }  
            }  
            System.out.println("continue循环结果");  
            grade2:  
            for (int i = 0; i < 5; i++) {  
                for (int j = 0; j < 5; j++) {  
                    if (j == 2)  
                        continue grade2;  
                    System.out.println("i=" + i + ",j=" + j);  
                      
                }  
            }  
        }
    

    运行结果如下:
    break循环结果:
    i=0,j=0
    i=0,j=1
    i=0,j=2
    continue循环结果
    i=0,j=0
    i=0,j=1
    i=1,j=0
    i=1,j=1
    i=2,j=0
    i=2,j=1
    i=3,j=0
    i=3,j=1
    i=4,j=0
    i=4,j=1

  • 相关阅读:
    [JZOJ3339]【NOI2013模拟】wyl8899和法法塔的游戏
    [JZOJ3337] 【NOI2013模拟】wyl8899的TLE
    UVA 1262 Password
    UVA 10820 Send a Table
    UVA 12716 GCD XOR
    UVA 10791
    UVA 10375 choose and divide (唯一分解定理)
    欧拉函数
    51 Nod 1069 Nim游戏
    51 Nod 1242 矩阵快速幂求斐波那契数列
  • 原文地址:https://www.cnblogs.com/yxdz/p/7528575.html
Copyright © 2011-2022 走看看