前言

在上一篇文章中,壹哥给大家介绍了while、do-while两种循环结构,并且给大家总结了两种循环的区别。实际上,我们在利用循环执行重复操作的过程中,还存在着另一个需求:如何中止,或者说提前结束一个循环?比如我们正在循环输出10000以内的数字,这时因为触发了某个条件,想提前中止这个循环操作该怎么办?所以今天壹哥就给大家讲解一下,如何在java代码中返回一个结果,如何结束和跳出一个循环。

------------------------------前戏已做完,精彩即开始----------------------------

全文大约【2800】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......

一. break

1. 作用

break关键字可以用于for、while、do-while及switch语句中,用来跳出整个语句块,结束当前循环的执行。另外我们要特别注意,break语句总是跳出自己所在的那一层循环。当两个for循环嵌套时,如果break语句位于内层的for循环,它只会跳出内层的for循环,但不会跳出外层的for循环。

2. 语法

break的用法很简单,我们在之前学习switch时就已经使用过了。一般就是在循环或switch语句中编写如下一条语句:

break;

比如我们使用for循环计算从1累加到100的和时,在循环内部,我们可以使用if判断,当i==50就提前利用break关键字结束循环。因此,break经常会配合if语句使用。

3. 案例

3.1 案例一

break会跳出当前for循环。当break执行后,当前整个for循环都会结束执行。

public class Demo01 {

	public static void main(String[] args) {
//break关键字 //需求:从1累加到100,找到累加到哪个数时,就使得sum和大于888
// 定义变量保存总和
int sum = 0; for (int i = 1; i <= 100; i++) {
sum = sum + i;
if (sum > 888) {
System.out.println("累加到"+i+"时,sum和就大于888");
// 结束当前循环
break;
//这里的语句执行不到,编译阶段就会报错
//System.out.println("能执行吗??");
}
//这里的语句可以执行,当break跳出循环后,就不会再继续执行
System.out.println("能执行吗??"+i);
}
} }

大家要注意,我们不能直接在break后面跟着其他语句,否则在编译阶段就会出现”Unreachable code“,如下图所示:

3.2 案例二

需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。

import java.util.Scanner;

public class Demo02 {

	public static void main(String[] args) {
//break关键字
Scanner sc = new Scanner(System.in); while(true){
String word = sc.next();
if(word.equals("886")){
//跳出当前循环
break;
} //输出内容
System.out.println(word);
}
} }

二. continue

1. 作用

continue适用于各种循环结构中,不能用于其他地方,用于跳过本次循环,执行下一次循环。break可以跳出当前循环,即整个循环都不会执行了。而与break不同,continue是提前结束本次循环,但会继续执行下一次的循环。在多层嵌套的循环中,continue也可以通过标签指明要跳过的是哪一层循环,并且同样是只结束自己所在的循环。

2.语法

continue的用法很简单,在循环结构中直接使用如下语句即可:

continue;

3. 案例

3.1 案例一

需求:输出100以内,所有不是3的倍数的整数。使用continue结束当前循环,继续下一次循环。

public class Demo03 {

	public static void main(String[] args) {
//continue关键字 //案例:输出100以内,所有不是3的倍数的整数
for(int i = 1; i <= 100 ; i++){
if(i % 3 == 0){
//结束本次循环,继续执行下次循环,并不会结束整个循环,直到完成整个循环
continue;
}
System.out.println(i);
} } }

3.2 案例二

需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。如果输入了敏感词汇,则用“***”替代显示。

import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
//continue关键字
//需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。如果输入了敏感词汇,则用“***”替代显示
Scanner sc = new Scanner(System.in);
while(true){
String word = sc.next();
if(word.equals("886")){
//跳出整个循环
break;
}
if(word.equals("WC")||word.equals("SB")){
System.out.println("***");
//中止本次循环,继续下一次循环
continue;
}
System.out.println(word);
}
}
}

4. 多层循环嵌套时的跳转

当多层循环嵌套时,内层循环可以使用外层循环中的变量。外层循环每循环一次,内层循环都会完整的执行完内层循环的所有次数。break/continue只会控制当前的循环,当多层循环嵌套时,为了便于控制,我们可以通过给循环设定标签的形式来进行控制。

4.1 语法

多层循环嵌套时,带有标签的语法结构如下:

label1: { ……
label2: { ……
label3: { ……
break label2;
}
}
}

当有多层循环嵌套,我们可以给每一次循环起个标签名称,名称随意,只要符合java里的标识符命名规则即可。然后结合break或者continue就可以结束当前或本次循环。

4.2 案例

这里是多层循环嵌套时带有标签的案例,供大家参考如下:

public class Demo07 {

	public static void main(String[] args) {
//多层循环嵌套 //打印5行5列的矩形,用 * 表示
label01:for(int i = 1 ; i <= 5 ;i++){ //控制行 label02:for(int j = 1 ; j <= 5 ; j++){//控制列
System.out.print(" * ");
//当执行到第3列时,提前跳出循环
if(j==3) {
break label02;
//continue label02;
}
} //进行换行
System.out.println();
}
} }

三. return

关于return关键字,今天壹哥先简单介绍以后,后面我们在学习Java的”方法“时会详细讲解!

1. 作用

return并不是专门用来结束循环的关键字,它可以用来结束一个方法或循环。当一个方法执行到return语句时,该方法就会被结束。与break和continue不同的是,return是直接结束整个方法,不管这个return处在多少层的循环之内。

2. 语法

return关键字的基本语法如下:

访问修饰符 返回值类型 方法名(参数...){
//方法体 //注意:这里返回值的类型必须与方法上声明的返回值类型一致!
return 返回值;
}

3. 案例

因为return的用法,主要是和java里的”方法“有关系,所以壹哥在这里先简单给大家展示两个基本的案例,以后我们再详细学习方法和return的内容。

3.1 案例一

在方法中返回值指定类型的结果。

public class Demo05 {

	public static void main(String[] args) {
// return关键字 //调用定义的方法,并获取返回结果
String result = sayHello();
System.out.println("result="+result);
} //定义一个带有String类型返回值的方法
//访问修饰符 返回值类型
public static String sayHello() { //本方法中只能返回String类型
return "Hello,壹壹哥!";
} }

3.2 案例二

return也可以在循环中使用,用于结束整个循环。

public class Demo06 {

	public static void main(String[] args) {
// return关键字 for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
if (i + j == 10) {
//结束整个循环的执行,无论循环的层次
return;
} System.out.println("i = " + i + ",j = " + j + ",i + j = " + (i + j));
}
} //这里执行不到
System.out.println("循环之后的语句");
} }

-----------------------------正片已结束,来根事后烟----------------------------

四. 结语

至此,壹哥就把return、break、continue这三个关键字给大家讲解完毕了,现在你知道它们三者的用法及其区别了吗?接下来壹哥就给大家对这几个关键字进行一下总结。

1. break与continue的对比

1.1 特点不同

● break语句可以跳出当前循环;

● break语句通常配合if来使用,在满足条件时可以提前结束整个循环;

● break语句总是跳出最近的一层循环;

● continue语句可以提前结束本次循环;

● continue语句也可以配合if语句,在满足条件时提前结束本次循环。

1.2 使用场合不同

● break可用于switch结构和循环结构中;

● continue只能用于循环结构中。

1.3 作用不同

● break语句用于终止某个循环,程序跳转到循环块外的下一条语句中;

● continue语句用于跳出本次循环,进入到下一次循环。

2. continue、break、return三者的对比

break:结束所在的循环;

continue:跳过本次循环,继续下一次循环;

return:结束整个方法。

以上就是return、break、continue的全部重点内容,大家后期好好消化。

五. 今日作业

第一题

使用while循环,打印输出10~100之间所有能同时被5和9整除的整数。

return、break与continue的区别的更多相关文章

  1. return、break、continue的区别

    一.定义 return:语句用于终止当前方法运行,返回到调用该方法的语句处.如有返回值,则在return后面提供相应的返回值. break:其主要用于循环语句和switch语句,其作用均是强行终止语句 ...

  2. for循环中break与continue的区别

    1.for循环 for循环是更加简洁的循环语句,大部分情况下,for循环可以代替while循环.do-while循环. for循环的格式为: for( 初始语句 ; 执行条件 ; 增量 ){循环体}执 ...

  3. go语言基础之break和continue的区别

    1.break和continue的区别 在循环里面有两个关键操作break和continue,break操作是跳出当前循环,continue是跳过本次循环. 2.break 备注:break可⽤于fo ...

  4. for循环及break和continue的区别

    1.For循环 格式: for( 初始语句 ; 执行条件 ; 增量 ){ 循环体 } 执行顺序:1.初始语句  2.执行条件是否符合 3.循环体  4.增加增量 初始化语句只在循环开始前执行一次,每次 ...

  5. python中break和continue的区别

    python中break和continue的区别   break和continue 1.break 意思为结束循环   例: i = 0 while i<10:     i+=1     if ...

  6. break和continue 的区别

    区别 break和continue都可在循环语句里面使用,也都可以控制外层的循环.但是continue只能在循环语句里面使用,break也可以使用在switch语句里面. break具体作用在循环语句 ...

  7. for循环的简介及break和continue的区别

    break和continue都是用来控制循环结构的,主要是停止循环. 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止. 这是我们可以使用break来完成. ...

  8. 循环内的switch中break和continue使用区别

    首先看下break和continue的使用方法. break语句在循环和switch语句中使用,用于终止最近的封闭代码块,如果在嵌套循环中,则只终止最近的循环. continue语句在循环中使用,不能 ...

  9. Java中goto和break、continue实现区别

    goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...

  10. return, break and continue

    最近学习多线程看到了一个描述不太准确的地方,让我对return break continue个语句的不同开始详细了解了一番,之前只是知道怎么使用,不是很深入研究,基本遇到了跳出就用return来解决全 ...

随机推荐

  1. springsecurity 配置swagger

    最近在学习springsecurity 安全框架,具体是什么概念在这里不一一赘述了.下面呢,咱们一起搭建一下简单的springsecurity swagger 项目感受一下. 首先初始化spring ...

  2. 移动web_字体图标

    字体图标 字体图标的优点 1.他是文本内容,矢量图,放大不会失真 2.因为是文本所以可以用文本的样式来设置 字体图标与精灵图比较 1.精灵图可以将多个图存放在一个文件上,所以请求只有一次,但是精灵图存 ...

  3. DHCP 服务详解

    本文转发于华为IP知识百科,链接地址 DHCP 目录 一.什么是DHCP? 二.为什么要使用DHCP? 三.DHCP是怎么工作的 四.DHCP使用场景 一.什么是DHCP? 动态主机配置协议DHCP( ...

  4. 安卓蓝牙协议栈中的RFCOMM状态机分析

    1.1 数据结构 1.1.1  tRFC_MCB tRFC_MCB(type of rfcomm multiplexor control block的简写)代表了一个多路复用器.代表了RFCOMM规范 ...

  5. 编译configure常用参数详解

    ./configure常用参数解释: 具体通过–help来查看具体支持什么功能.有时候编译不通过,可能依赖一些库,如果这些库关联的功能我们不需要,可以通过---disable-*lib来取消相关库的编 ...

  6. Vue-数据代理

    Vue中的数据代理 数据代理定义 所谓数据代理,就是通过一个对象代理对另一个对象中的属性的操作(读/写).说白了就是操作一个对象上的属性可以读取和修改另一个对象上的属性,这种关系就叫做数据代理. 在V ...

  7. 记录jupyter lab 多个kernel混乱的问题

    问题描述 在Anaconda下我有多个虚拟环境,其中一个叫d2l,由于pytorch版本和cuda算力不匹配,重新create了一个环境:d2l_new.然后环境配置好了之后激活环境,启动jupyte ...

  8. C++ PTA 本题要求实现一个计算m和n之间所有整数的和

    6-2  2020mhb_函数_求和 (10分) 本题要求实现一个计算m和n之间所有整数的和(求和时需要将m和n也加入到和中)的函数.注意:如果m<=n则计算m到n的所有整数之和,如果m> ...

  9. centos7中通过源码安装postgresql13.6

    下载地址:https://www.postgresql.org/ftp/source/ 0.安装相关依赖库 centos依赖包下载地址:https://developer.aliyun.com/pac ...

  10. uni-app微信小程序文本框计数功能

    <view> <textarea placeholder="请输入" @input="sumfontnum" :maxlength=" ...