在程序设计时,循环直接的跳转显得十分重要,虽然Java没有提供goto语句去控制程序的跳转,但为了控制循环,Java提供了continue,break,以及特殊的标签来实现特定的中断及跳转,当然还有return,这个相对不同一些。本篇将会做出总结。

break

在循环时,如果不想等到false就终止循环的话,可以使用break来完成。

例如以下这个简单的例子:

for (int i = 0;i<10 ;i++ ) {
System.out.println(i);
if(i==1) break;
}
System.out.println("跳出循环");//输出 0 1 跳出循环

可以直到,如果没有if(i==1) break;这个语句,这个循环将会依次输出0-9的数字,但是加上这句之后,如果执行到i等于1时,执行break语句,将直接跳出循环。

continue

continue有点像是放弃一部分,再从头开始。

依旧给出例子:

for (int i = 0;i<10 ;i++ )
{
if(i%2==0) continue;
System.out.println(i);
}
System.out.println("跳出循环");
//输出1 3 5 7 9 跳出循环
  • continue用于忽略本次循环剩下的语句,接着下一次循环,但是不会像break一样直接终止循环。
  • 上面的例子,只要时偶数就跳过后面的输出环节,后面也就都是输出奇数啦。

return

其实return并不是专门用于结束循环的关键字,而是用来结束一个方法。

for (int i = 0;i<10 ;i++ ) {
System.out.println(i);
if(i==1) return;
}
System.out.println("跳出循环");//输出 0 1
  • 可以看出,将第一个break语句的例子改成return,后面的“跳出循环”并不会被输出,也就是说return结束了整个程序。
  • 虽然return也可以结束一个循环,但是与前两个不同,他结束了整个方法,不管return藏在多少层嵌套循环里面。
  • return与break和continue不同的地方有很多,return后面可以跟一个值,并将值返回。

标签

Java中没有goto但是,continue和break两个本属于中断语句的关键字,配合上“标签”之后,有了和goto类似实现跳转的机制,能够轻易控制多层的循环嵌套。

break和continue配合标签类似,但也有差别。

标签需要放在循环语句之前,否则有啥意义吖,具体形式如:label:

  • break+标签
outer:
for (int i = 0;i<5 ;i++ ) {
for (int j = 0;j<3 ;j++ ) {
System.out.print(" i="+i+" j="+j);
if(j==1)
{
break outer;
}
System.out.println();
} }
//输出
i=0 j=0
i=0 j=1

当j==1时,遇到break outer语句,导致结束outer标签指定的循环,不是结束break所在的循环!不是结束break所在的循环!!!!

  • continue+标签
outer:
for (int i = 0;i<5 ;i++ ) {
for (int j = 0;j<3 ;j++ ) {
System.out.print(" i="+i+" j="+j);
if(j==1)
{
continue outer;
}
System.out.println();
}
}
//输出
i=0 j=0
i=0 j=1 i=1 j=0
i=1 j=1 i=2 j=0
i=2 j=1 i=3 j=0
i=3 j=1 i=4 j=0
i=4 j=1

j的值永远都不会超过1,因为每当j=1,遇到continue outer语句就结束了outer标签控制循环的当此循环,直接开始下一次循环,这时候i从i+1开始,j又将从0开始。

Java流程控制之(四)中断的更多相关文章

  1. Java核心基础第3篇-Java流程控制

    Java流程控制 本章一起来探讨下Java的流程控制语句.主要从以下几个方面展开: Java分支语句 Java循环语句 Java其实和其他任何的开发语言一样,分支语句和循环语句是必不可少的,有个这两个 ...

  2. 第4天 JavaDoc生成文档&Java流程控制(第一节:用户交互Scanner)

    JavaDoc生成文档 javadoc命令是用来生成自己的API文档 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ ...

  3. JAVA流程控制

    JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){     ...

  4. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

  5. Java流程控制练习--万年历

    Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...

  6. Java 流程控制

                                   Java    流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...

  7. 016PHP基础知识——流程控制(四)

    <?php /** * 流程控制(四) do...while * do{ 代码段 * }while(){ * } * 特点:最少会执行一次代码段 */ /*$i=5; do{ echo $i; ...

  8. JAVA 流程控制之选择语句

    在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...

  9. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  10. Java流程控制,for,switch,while.break,continue,return

    Java流程控制,for,switch,while.break,continue,return

随机推荐

  1. MyBatis(1)-- MyBatis介绍

    一.MyBatis优点 不屏蔽SQL,意味着可以更为精确地定位SQL语句,可以对其进行优化和改造,这有利于互联网系统性能的提高,符合互联网需要性能优化的特点. 提供强大.灵活的映射机制,方便Java开 ...

  2. 如何在python文件中测试sql语句

    在manage.py的同级目录下新建一个run.py import os if __name__ == '__main__': #加载Django项目的配置信息 os.environ.setdefau ...

  3. .NET进阶篇05-Linq、Lambda表达式

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 内容目录 一.Lambda表达式1.匿名方法2.Lambda表达式二.Linq概述三.查询操作符1.linq初见2.常用查询操作符筛选排序分组连 ...

  4. 外星人R7 1080Ti 装ubuntu两个巨坑

    机器型号(Alienware R7):GTX1080ti,i7-8700 install ubuntu 16.04 坑一 ACPI Error: Namespace lookup failure AC ...

  5. Centos6.5 忘记密码解决方法

    问题 原因  : 太久没用centos了  忘记密码了 很尴尬 快照也没说明密码.... 1.重启 centos 在开机启动的时候快速按键盘上的“E”键 或者“ESC”键(如果做不到精准快速可以在启动 ...

  6. 小奇的仓库:换根dp

    一道很好的换根dp题.考场上现场yy十分愉快 给定树,求每个点的到其它所有点的距离异或上m之后的值,n=100000,m<=16 只能线性复杂度求解,m又小得奇怪.或者带一个log像kx一样打一 ...

  7. php 全文搜索搜索-讯搜使用

    相信很多朋友遇到过,需要全文搜索的场景,百度了一圈发现了一个xunsearch 首先本地采集了1万篇文章,发现效率还可以. 使用上也很简单,直接上代码 //接收关键词 $xs = new XS('xp ...

  8. Opencv python(3)| cv. VideoCapture.get() 参数介绍

    cv2.VideoCapture.get ()  的 (0-18)参数 cv2.VideoCapture.get(0)            视频文件的当前位置(播放)以毫秒为单位 cv2.Video ...

  9. 第五天、vim,重定向,用户和组管理

    第五天.vim,重定向,用户和组管理 vim vi:Visual editor,文本编辑器 行编辑器:sed 全屏编辑器:vim,vi,nano 其他编辑器gedit,gvim 定义别名让vi等于vi ...

  10. 设计模式(Java语言)-单例模式

    单例模式,简而言之就是在整个应用程序里面有且仅有一个实例,在程序的任何时候,任何地方获取到的该对象都是同一个对象.单例模式解决了一个全局的类被频繁创建和销毁的,或者每次创建或销毁都需要消耗大量cpu资 ...