`
riyunzhu
  • 浏览: 28627 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

break和continue的标签用法

 
阅读更多

打从我接触VF开始,到后面的C、C++,最后到我学了快半年的Java为止,对于循环中的跳出控制语法“break”、“continue”来说,一点都不陌生!然后直到今天,看《Flash ActionScript 3.0 殿堂之路》一书时才对这两个家伙有了有更进一步的了解!才知道在AS中这两个还可以使用标签来标记!那么java中是不是也可以这样做呢?(因为语言虽然不同,但是语言的一些流程控制还是蛮相似的,再说人家AS 3.0也是面向对象的嘛!)。上网找了一下还是有这样的用法的在java中。

我们先看不用标签的例子。我们一般用这两个家伙的时候,可能对于大部分初学者来说,只知道break是跳出整个循环,而continue是跳出该层循环继续执行后面的循环!先来看一个例子:

public class Demo5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		int a=4;
		switch (a){
			case 1:
				System.out.println("1");
				break;
			case 2:
				System.out.println("2");
				break;
			case 3:
				System.out.println("3");
				break;
			case 4:
				System.out.println("4");
				break;
			default:
				System.out.println("");
		}
		int b=5;
		for(int i=0;i<=5;i++){
			
			if(i==4) continue;
			System.out.println(i);
		}

	}

}


对于switch的输出结果:

4

对于for语句的输出结果是:

0
1
2
3
5

这也许是对于跟我差不多一样的初学者碰到的最多的break和continue跳出循环的情况了啊!但是我们有没有想过,当我们的循环有三层以上而且我们需要根据我们设定的条件跳转到特定的那一层循环中去怎么办呢?下面这个例子是我从《Flash ActionScript 3.0 殿堂之路》看到的例子(因为这本书中讲的是AS语言例子,在这里我把改成java语言):

package com.test;

public class Demo5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub	
		
		//多层循环(三层)
		int i=-1;
		parent://设定最外层循环标签为parent
		do{
			System.out.println("{父循环");
			son://设定第二层循环标签为son
			while(true){
				i++;
				System.out.println("\t{子循环i="+i);
				for(int k=0;k<3;k++){
					System.out.println("\t\t{孙循环 k="+k);
					if(i==1){
						System.out.println("\t\ti==1:continue 孙循环");
						continue;
					}
					if(i==2){
						System.out.println("\t\ti==2:continue 子循环:son");
						continue son;
					}
					if(i==3){
						System.out.println("\t\ti==3:continue 父循环:parent");
						continue  parent;
					}
					if(i==4){
						System.out.println("\t\ti==4:break 孙循环");
						break;
					}
					if(i==5){
						System.out.println("\t\ti==5:break 子循环:son");
						break son;
					}
					if(i==6){
						System.out.println("\t\ti==6:break 父循环:parent");
						break parent;
					}
					System.out.println("\t\t孙循环}");
				}
				System.out.println("\t子循环}");
			}
			System.out.println("父循环}");
		}while(true);
			
	}

}


大家请看我用红色标记出来的,是不是跟第一个例子有点不一样啊?在循环外面加一个循环标签,这样我们就可以跳转我们制定的标签了。比如从最里面的一层(例子中的孙标签那一层)跳转到最外面一层(例子中的父标签那一层)的话,如果不用标签的话,我们用break的话只能跳转到最里面一层的外面一层(例子中的子标签)。换句话说,如果不用标签的话,孙标签只能跳转到子标签那一层。但如果加了标签的话,在break后面加上标签的名字,就可以跳转到break后面的那个标签那一层了。这样我们就可以更好的控制程序的流程啦!(也许你可以来个穿越,从你这一代穿越回到曾祖父的曾祖父的曾祖父……的那一代去咯!大笑

如果我们看上面的例子的话,你的输出结果是什么呢?

哈哈,下面是第二个例子的输出结果:

{父循环
	{子循环i=0
		{孙循环 k=0
		孙循环}
		{孙循环 k=1
		孙循环}
		{孙循环 k=2
		孙循环}
	子循环}
	{子循环i=1
		{孙循环 k=0
		i==1:continue 孙循环
		{孙循环 k=1
		i==1:continue 孙循环
		{孙循环 k=2
		i==1:continue 孙循环
	子循环}
	{子循环i=2
		{孙循环 k=0
		i==2:continue 子循环:son
	{子循环i=3
		{孙循环 k=0
		i==3:continue 父循环:parent
{父循环
	{子循环i=4
		{孙循环 k=0
		i==4:break 孙循环
	子循环}
	{子循环i=5
		{孙循环 k=0
		i==5:break 子循环:son
父循环}
{父循环
	{子循环i=6
		{孙循环 k=0
		i==6:break 父循环:parent

跟你自己的结果是不是一样呢?!微笑

总结:书山有路勤为径!!!

分享到:
评论

相关推荐

    j关于ava语法的ppt

    3.循环跳转语句break和continue的使用:编写一个双重循环,将break或continue依次放到内循环、外循环及内循环中放置break 标签;,观察程序的输出结果,体会break和continue的作用。 4.用循环结构求1-10的平方和 ...

    JavaScript中的标签语句用法分析

    本文实例分析了JavaScript中的标签语句用法。分享给大家供大家参考。具体分析如下: 最近在看w3school,然后看到js部分, &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;body&gt; [removed] cars=["BMW","Volvo","Saab",...

    知乎大神萧井陌web前端课程

    第5章 作业讲解、如何方便地用测试写代码、break&continue;语句、object、读文档、递归 第6章 网页中引入JavaScript代码、DOM、事件 第7章 数据类型、多行字符串和转义符号、高阶函数、匿名函数 第8章 事件委托、...

    JavaScript详解(第2版)

     6.3.5 使用break和continue控制循环   6.3.6 嵌套循环及标签   6.4 应知应会   练习   第7章 函数   7.1 什么是函数   7.1.1 函数声明和调用   7.1.2 返回值   7.1.3 匿名函数变量   ...

    编程思想下篇

    4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以返回值区分重载方法 5.3 缺省...

    JavaScript基础和实例代码

    2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归...

    Thinking in java4(中文高清版)-java的'圣经'

    4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以...

    现代C++程序设计

    2.9 开始使用类和对象、C++string类 2.10 练习 复习题 第3章 控制语句和循环 3.1 关系运算符和逻辑运算符 3.2 if语句 3.2.1 if-else语句 3.2.2 问题分析:在if语句中使用大括号 3.2.3 if-else if-else语句 3.2.4 ...

    源文件程序天下JAVASCRIPT实例自学手册

    2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归...

    javascript文档

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    Java2实用教程.rar

    3 5break和continue语句 习题 第4章类 对象和接口 4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6...

    JAVA语言程序设计【高清版】.pdf

    44 4.2.3 分支语句 45 4.2.4 循环语句 52 4.2.5 break与continue语句 54 习题 56 第5章 类与对象 60 5.1 类的定义与对象的创建 60 5.1.1 类的定义格式 60 5.1.2 对象的创建和初始化 63 5.2 构造方法 ...

    TCK/TK组合教程

    6.6 break和continue 6.7 catch 6.8 error 6.9 return 第7章 过程和作用域 7.1 proc命令 7.2 利用rename改变命令名 7.3 作用域 7.4 global命令 7.5 使用upvar按名称调用 7.6 使用upvar创建变量...

    java编程规范(第三版)

    4.11 在何处使用类型 51 4.12 变量 53 第5章 转换和提升 60 5.1 转换的种类 62 5.2 赋值转换 71 5.3 方法调用转换 76 5.4 字符串转换 77 5.5 强制转换 77 5.6 数值提升 82 第6章 名称 85 6.1 声明 86 6.2...

    【03-流程控制与数组】

    •continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是 完全中止循环。 return语句 • return关键字并不是专门用于跳出循环的,return的功能是结束一个方法...

    Java2游戏编程.pdf

    2.4.3 用break、continue和return提前退出循环 2.5 处理运行时异常 2.5.1 使用try和catch块 2.5.2 使用throws子句 2.5.3 关于流程控制语句的记忆要点 2.6 总结 2.7 练习 第3章 带有类的语言:Java面向对象程序设计 ...

    【全新正版】现代C++程序设计(原书第2版)

    2.9 开始使用类和对象、C++string类 2.10 练习 复习题 第3章 控制语句和循环 3.1 关系运算符和逻辑运算符 3.2 if语句 3.2.1 if-else语句 3.2.2 问题分析:在if语句中使用大括号 3.2.3 if-else if-else语句 3.2.4 ...

    Javascript数组操作高级心得整理

     使用Function类的valueOf()方法和toString()方法 11 (4) 闭包 11 8. 循环语句 11 (1) for循环 12  for循环的使用格式 12  例子 12 (2) while循环 12  While循环的使用格式 12  例子 12 (3) 使用break和...

Global site tag (gtag.js) - Google Analytics