think in JAVA之Label,JAVA中的Goto

最近想练练基础功,于是拿出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中也有标签。

你可能感兴趣的:(java,sql,String,Class)