java怎么直接跳出外层循环

java如何直接跳出外层循环
使用break直接结束外层循环

break默认是结束当前循环,有时我们在使用循环时,想通过内层循环里的语句直接跳出外层循环,java提供了使用break直接跳出外层循环,此时需要在break后通过标签指定外层循环。java中的标签是一个紧跟着英文冒号的标识符,与其他语言不同的是,java中的标签只有放在循环语句之前才有作用。需要注意的是,break后标签必须是一个有效的标签,即这个标签须在break语句所在循环的外层循环之前定义。
例如一下代码:
package com;

public class Test {
	
	public static void main (String []args){
		//外层循环,outer作为标识符
		outer:
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				System.out.println(i+"---"+j);
				//当j=2时结束outer标识符指定的循环
				if(j==2){
					break outer;
				}
			}
		}
	}
}



运行结果为:
0---0
0---1
0---2




欢迎加入2000人的技术交流千人群:101085864








1 楼 lvwenwen 14 小时前  
欢迎加入2000人的技术交流千人群:101085864
这才是重点
2 楼 gteam.yu 13 小时前  
 public static void main(String[] args)
    {
        boolean stop = false;
        for (int i = 0; i < 3 && !stop; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                // do something
                System.out.printf("i is %d, j is %d\n", i, j);
                if (j == 2)
                {
                    stop = true;
                    break;
                }
            }
        }
    }

其实我更喜欢这样的方式,感觉这样更加符合java的风格,不确定那个方式更加好
3 楼 gnail_oug 12 小时前  
gteam.yu 写道
 public static void main(String[] args)
    {
        boolean stop = false;
        for (int i = 0; i < 3 && !stop; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                // do something
                System.out.printf("i is %d, j is %d\n", i, j);
                if (j == 2)
                {
                    stop = true;
                    break;
                }
            }
        }
    }

其实我更喜欢这样的方式,感觉这样更加符合java的风格,不确定那个方式更加好

java怎么直接跳出外层循环
4 楼 mqlfly2008 3 小时前  
其实我更喜欢直接return
5 楼 魔力猫咪 3 小时前  
不能跳出那么避免多重嵌套循环就是。可以把里面的循环单独写成方法使用嘛。这样可以简化代码,提高可读性。
6 楼 panjavay 3 小时前  
gteam.yu 写道
 public static void main(String[] args)
    {
        boolean stop = false;
        for (int i = 0; i < 3 && !stop; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                // do something
                System.out.printf("i is %d, j is %d\n", i, j);
                if (j == 2)
                {
                    stop = true;
                    break;
                }
            }
        }
    }

其实我更喜欢这样的方式,感觉这样更加符合java的风格,不确定那个方式更加好

java怎么直接跳出外层循环 是的,提倡这么写!