最近想练练基础功,于是拿出JAVA经典书think in java,边学边记一些自己的感受。
首先,今天要说的就是标签Label,JAVA中保留了goto关键字,却没有goto语句。取而代之的是Label。曾几何时如果早点知道这个,就好了。看了think in java,表示学习了。
package com.tudou.t1;
/**
* 需求:遇到一种情况,当内层循环有一个条件满足时,退出整个循环
* @author lz
*
*/
public class LabelGoto {
public static void main(String[] args) {
test();//原始方法不能满足需求
test1();//原始做法
test2();//使用Label的做法
}
private static void test() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 20; j++) {
if (j == 10) {
System.out.print("中断");
break;//只能中断内层循环
}
}
System.out.print(i);
}
}
private static void test1() {
boolean flag = false;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 20; j++) {
if (j == 10) {
flag = true;//改变变量的值
System.out.println("中断");
break;
}
}
if (flag == true) {
System.out.println("变量中断外层循环:" + i);
break;
}
}
}
private static void test2() {
L: // 声明一个书签
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 20; j++) {
if (j == 10) {
System.out.println("使用Label直接中断");
break L;
}
}
System.out.print(i);
}
System.out.println("循环中断。");
}
}
第一种方法解决不了问题,而第二种方法是我们在没有接触Lable时用的最常用手段。
而学习了Label后,发现。。。和SQL中一样的道理。只是一直不知道JAVA中也有标签。