1、用于switch语句当中,用于终止语句

2、用于跳出循环,此为不带标签的break语句,相当与goto的作用

e.g

         while(i<j&&h<k){
if(h<k)
{
....
}
} while(i<j){
if(h>k) break;
}

在第一种写法中,对条件h<k进行了两次检测,而第二种写法,通过使用break跳出循环,减少了对同一条件的判别次数,避免了重复检测。

注意,在一系列循环嵌套中,break仅仅终止的是最里层的循环

试验代码如下:

 for(int i=0;i<=3;i++){
System.out.print("loop"+i+" ");
for(int j=0;j<10;j++){
if(j==3){
break;
}
System.out.print("j="+j+" ");
}
System.out.println(); }

输出:

loop0 j=0 j=1 j=2
loop1 j=0 j=1 j=2
loop2 j=0 j=1 j=2
loop3 j=0 j=1 j=2

3、带标签的break语句

常常用于跳出多层嵌套

注意,在带标签的break语句中,标签必须放在希望跳出的最外层之前,并紧跟一个冒号

e.g

 public class Test {
public static void main(String args[]){ read_data:
while(1==1){
if(1==1){
System.out.println("1st"); }
if(1==1){
System.out.println("2nd");
break read_data; }
if(1==1){
System.out.println("3rd");
}
} System.out.println("out of loop"); }
}

输出:

1st
2nd
out of loop

e.g:

         first:{
System.out.println("first");
second:{
System.out.println("second");
if(1==1){
break first;
}
third:{
System.out.println("third");
}
}
System.out.println("will not be excuted");
}
System.out.println("out of loop");

输出:

first
second
out of loop

对于带标签的break语句而言,只能跳转到包含break语句的那个块的标签上

下列代码是非法的:

         first:if(1==1){
System.out.print("................");
}
second:if(1==1){
System.out.print("................");
break first;
}

补充 continue语句:

continue语句将控制转移到最内层循环的首部

while和 do while语句中continue语句直接转移到条件表达式,在for循环中,循环的检验条件被求值。

e.g:

 public static void main(String args[]){

         int count;
int n;
int sum=0;
Scanner i=new Scanner(System.in);
for(count=1;count<=3;count++){
System.out.println("enter a number,-1 to quit:");
n=i.nextInt();
if(n<0)
{
System.out.println("sum="+sum);
continue;
}
sum+=n;
System.out.println("sum="+sum);
} }

输出:

enter a number,-1 to quit:
1
sum=1
enter a number,-1 to quit:
-1
sum=1
enter a number,-1 to quit:
1
sum=2
当输入为负时,continue语句直接跳到count++语句

continue语句也可以使用标签:

e.g

 public static void main(String args[]) {

         outer: for (int i=0; i<10; i++) {

         for(int j=0; j<10; j++) {

         if(j > i) {

         System.out.println();

         continue outer; }

         System.out.print(" " + (i * j)); }}

         System.out.println();

         } 

输出:

0
 0 1
 0 2 4
 0 3 6 9
 0 4 8 12 16
 0 5 10 15 20 25
 0 6 12 18 24 30 36
 0 7 14 21 28 35 42 49
 0 8 16 24 32 40 48 56 64
 0 9 18 27 36 45 54 63 72 81

return语句:

return语句将程序控制返回到调用它的方法

e.g:

 public static void main(String args[]) {

         for(int i=0;i<10;i++){
System.out.println("i="+i+" ");
for(int j=0;j<10;j++)
{
if(1==1){
return;
}
System.out.println("j="+j+" ");
}
}
}

输出:

i=0

return 用来是正在执行的分支程序返回到它的调用方法上,在此,main函数的调用方法是java运行系统,所以执行到return;处,程序控制将被传递到它的调用者,所以后面的代码将都不被执行。

java break语句的三种用法的更多相关文章

  1. java中 this 的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  2. JAVA中this的三种用法的详解

    this关键字必须放在非静态方法里面 this关键字代表自身,在程序中主要的使用用途有以下几个方面: ? 使用this关键字引用成员变量 ? 使用this关键字在自身构造方法内部引用其它构造方法 ? ...

  3. java中 this 关键字的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  4. java的break,另一种用法(多层循环嵌套)

    break的另一种用法: 1.跳出外循环 outer:for(int j=0;i<4;j++){//outer随便定义的一个标签 for(int i=0;i<10;i++){ if(i== ...

  5. (转)Java结束线程的三种方法

    背景:面试过程中问到结束线程的方法和线程池shutdown shutdownnow区别以及底层的实现,当时答的并不好. Java结束线程的三种方法 线程属于一次性消耗品,在执行完run()方法之后线程 ...

  6. java多线程中的三种特性

    java多线程中的三种特性 原子性(Atomicity) 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行. 如果一个操作时原子性的,那么多线程并 ...

  7. Java结束线程的三种方法(爱奇艺面试)

    线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的.例如在程序中使用线程进行So ...

  8. java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  9. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

随机推荐

  1. 解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别

    GET: 请求指定的页面信息,并返回实体主体.HEAD: 只请求页面的首部.POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体.PUT: 从客户端向服务器传送的数据取代指定的文档 ...

  2. locate无法open mlocate.db

    # locate xxxx locate: can not open () `/var/lib/mlocate/mlocate.db': No such file or directory 如果出现此 ...

  3. 使用JavaScript获得星期几和每月多少天

    <script type="text/javascript"> var date = "07/17/2014"; //此处也可以写成 17/07/2 ...

  4. 基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

    自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的 ...

  5. node环境配置安装(nvm)

    在我们前端开发工程中,很多繁琐机械的操作都是会慢慢的被抽离出来的,当我们为dom操作和浏览器兼容性感到厌烦时,jQuery出现了,当我们不想再去理会dom的添加删除等的时候,angularJS来解救我 ...

  6. C#操作Word的辅助类(word2003) 修改完善版

    转自:http://blog.csdn.net/jiutao_tang/article/details/6567608 该类在他人编写的几个类基础上扩展完善而来,主要功能有: (1)插入文本 (2)插 ...

  7. GridView使用自带分页功能时分页方式及样式PagerStyle

    // 转向地址:http://www.bubuko.com/infodetail-412562.html GridView分页,使用自带分页功能,类似下面样式: 在aspx页面中,GridView上的 ...

  8. Null modem接线

    1.6 <-> 4 2 <-> 3 3 <-> 2 4 <-> 1.6 5 <-> 5 7 <-> 8 8 <-> ...

  9. Delphi制作DLL

    一.开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞ 代码: //自动产生Code如下 library Project2; //这有段废话 ...

  10. Spark ML 文本的分类

    最近一直在研究Spark的分类算法,因为我们是做日志文本分类,在官网和各大网站一直没找到相应的Demo,经过1个多月的研究,终于有点成效. val sparkConf = new SparkConf( ...