在程序设计时,循环直接的跳转显得十分重要,虽然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. zookeeper - 通过java代码连接zookeeper(2)

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. GStreamer基础教程11 - 与QT集成

    摘要 通常我们的播放引擎需要和GUI进行集成,在使用GStreamer时,GStreamre会负责媒体的播放及控制,GUI会负责处理用户的交互操作以及创建显示的窗口.本例中我们将结合QT介绍如何指定G ...

  3. SpringBatch从入门到放弃003- 核心概念2

    1. Job Job是一个封装了 Batch 整个执行过程的实体,和其他 Spring 工程一样,Job可以基于 XML 和 Java-based配置两种,但是无论使用怎样的配置,Job都在这个结构的 ...

  4. swiper轮播

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 【Windows系统】win10系统假死,窗口不能动,鼠标能动或不能动,最后蓝屏显示错误码: VIDEO_DXGKRNL_FATAL_ERROR 的解决办法

    1. 问题的出现过程 最近博主自己用的 windows10 系统就碰到了这个问题. 一开始出现这个问题的征兆是鼠标会时不时地卡顿,一出现卡顿就会等个 1-3秒才能动.然后频繁卡顿(注意,这里根据经验就 ...

  6. 原生js实现上拉加载

    原生js实现上拉加载其实超级简单,把原理整明白了你也会,再也不用去引一个mescroll啦~ 好了,废话不多说,开始进入正题:上拉加载是怎么去做的,原理就是监听滚动条滑到页面底部,然后就去做一次请求数 ...

  7. 机器学习笔记(一)&#183; 感知机算法 &#183; 原理篇

    这篇学习笔记强调几何直觉,同时也注重感知机算法内部的动机.限于篇幅,这里仅仅讨论了感知机的一般情形.损失函数的引入.工作原理.关于感知机的对偶形式和核感知机,会专门写另外一篇文章.关于感知机的实现代码 ...

  8. Web for pentester_writeup之XSS篇

    Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...

  9. 网页文件打包成.exe可执行文件

    网页文件不止可以通过浏览器打开,也可以通过打包程序打包成.exe桌面可执行程序,这样写的网页文件就可以像桌面应用一样打开了.方法如下: 工具:NW.js.Enigma Virtual Box.资源编辑 ...

  10. markdown 编辑器概述

    markdown 编辑器概述     编辑器其实很多很多,主要分为    网页编辑和软件编辑 (效果其实感觉效果差不多,看个人喜好,笔者个人还是喜欢本地,感觉方便挺多的) ## 网页编辑器 主要有 C ...