java break接触

逛贴吧的时候看到一个帖子有一段这样的代码

public class Forgg {
	public static void main(String[] args) {
		kk:
			for (int i = 0; i < 11; i++) {
				if(i == 8 ){
					break kk;
				}else{
					if(i%2 != 0) {
						System.out.println(i);
					}
				}
				
			}
	}
}

看到这样的代码果断的想到了假如i==8是true的话会不会产生死循环。从来没有接触过这样的代码感觉不是很理解,难道跳转到kk处代码就不会在执行for循环了?

于是就写下下面的代码来进行测试

package org.pcl;

import java.util.Scanner;
/**
 * 演示中断中的标号(似Goto语句)
 * @author yifan 
 * @version 1.0 2014-05-06
 */
public class Forgg {
	public static void main(String[] args) {
		String[] msgs = new String[] {"输入您的姓名", "输入您的年龄"};
		Scanner scan = new Scanner(System.in);
		/*
		 * 在这里定义标号执行顺序是
		 * 1.用户输入
		 * 2.测试输入
		 * 3.测试失败直接跳转到标号下循环语句的下句也就是System.out.println("我执行了");
		 * 根据单步跟踪来分析后得出的结论就是这个标记仅仅是表示跳出那个循环
		 * 表达能力有限希望见谅,最终极的办法就是加断点然后F6单步跟踪来看看是怎样运行的
		 */
		EnterAgain:
		for(int i=0; i<msgs.length; i++) {
			System.out.println(msgs[i]);
			String tmp = scan.nextLine();
			//System.out.println(tmp);
			/*
			if(!tmp.equals("张三") && msgs[i].equals(msgs[0])) {
				break EnterAgain;
			} else if(!tmp.equals("22") && msgs[i].equals(msgs[1])) {
				break EnterAgain;
			} else {
				System.out.println(tmp);
			}
			*/
			if(tmp.equals("张三") || tmp.equals("22")) {
				System.out.println(tmp);
			} else {
				break EnterAgain;
			}
		}
		System.out.println("我执行了");
	}
}

哎 写这个真的很难,不过自己理解就好。

建议看不懂的朋友能够自己单步下,我是真说不明白了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值