java中的“标签”

在java中,有一个叫“标签”的说法,它的作用是跳出当前的多种循环,机制类似c语言中的goto。在java中没有goto语句,goto是java中的一个保留字,至今未使用。

标签的语法格式是:

lable:

outer-iteration

{

inner-iteration

{

break;//中断内部迭代回到外部迭代

continue;//继续内部迭代

continue lable;//中断内部迭代回到外部迭代

break lable;//中断外部迭代

}

}

说了这么多我们来看一段程序:

public class LableFor
{
	public static void main(String[] args)
	{
		int i = 0;
		
		outerLable:
			for(;true;)//死循环
			{
				innerLable:
					for(;i<10;i++)
					{
						System.out.println("i="+i);
						if(i==2)
						{
							System.out.println("continue");
							continue;
						}
						if(i==3)
						{
							System.out.println("break");
							i++;//otherwise i never gets incremented
							break;
						}
						if(i==7)
						{
							System.out.println("continue outerLable");
							i++;
							continue outerLable;
						}
						if(i==8)
						{
							System.out.println("break outerLable");
							break outerLable;
						}
						
						for(int k = 0;k<5;k++)
						{
							if(k==3)
							{
								System.out.println("continue innerLable");
								continue innerLable;
							}
						}
					}
			}
	}
}

结果如下:

i=0
continue innerLable
i=1
continue innerLable
i=2
continue
i=3
break
i=4
continue innerLable
i=5
continue innerLable
i=6
continue innerLable
i=7
continue outerLable
i=8
break outerLable 


从结果中可以看出当i==8时程序成功中断了外层循环。


记住:

一般来说在java里使用标签的唯一理由是因为有循环嵌套存在,而且相从多层嵌套中break或continue。

java中的“标签”,布布扣,bubuko.com

java中的“标签”

上一篇:[Python]zip 和 izip , izip_longest比较


下一篇:java算法每日一练