break 冲出多层循环

break 跳出多层循环
package com.lixueli.test;

import junit.framework.Assert;
import org.junit.Ignore;
import org.junit.Test;

import com.lixueli.model.Person;

public class CommonTest{
		
	/**
	 * break 跳出多层循环
	 * 外层的循环条件表达式的结果可以受到里层循环体代码的控制
	 */
	@Test
	@Ignore
	public void testBreak(){
		int arr[][] = {{1,2,3},{4,5,6,7},{9}};
		boolean found = false;
		for(int i=0;i<arr.length && !found;i++)	{
				for(int j=0;j<arr[i].length;j++){
					System.out.println("i=" + i + ",j=" + j);
					if(arr[i][j]  == 5) {
						found = true;
						break;
					}
				}
			} 

	}
	/**
	 * break 只能跳出第一层for循环,而后继续外层循环
	 */
	@Test
	@Ignore
	public void testBreak2(){
		int arr[][] = {{1,2,3},{4,5,6,7},{9}};
		for(int i=0;i<arr.length;i++)	{
				for(int j=0;j<arr[i].length;j++){
					System.out.println("i=" + i + ",j=" + j);
					if(arr[i][j]  == 5) {
						break;
					}
				}
			} 
	}
	
	/**
	 * 在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环
	 */
	@Test
	public void testBreak3(){
		ok:
			for(int i=0;i<10;i++)	{
				for(int j=0;j<10;j++)		{
					System.out.println("i=" + i + ",j=" + j);
					if(j == 5) break ok;
				}
			} 

	}
}