break、continue、return中选择一个,我们结束掉它
在平时的开发过程中,经常会用到循环,在写循环的过程中会有很多判断条件及逻辑,你知道如何结束一个循环吗?在java中有break、continue、reture三个关键字都可以结束循环,我们看下他们的区别。
一、break
1.1、单层循环
我们先看下在只有一层循环的情况下,break是怎么起作用的,
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试break
* @date 2022/5/23 21:13
*/
public class TestBreak {
public static void main(String[] args) {
endCycle();
}
/**
* 单层循环
*/
static void endCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for(String str:list){
if(str.equals("3")){
break;
}
System.out.println("单层:"+str);
}
}
}
结果如下,
单层:1
单层:2
Process finished with exit code 0
在单层循环中,break结束的是整个循环,后续的不再执行;
1.2、多层循环
看下单层循环和多层循环有区别吗,
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试break
* @date 2022/5/23 21:13
*/
public class TestBreak {
public static void main(String[] args) {
endMultiCycle();
}
/**
* 多层循环
*/
static void endMultiCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
List<String> innerList=new ArrayList<String>();
innerList.add("A");
innerList.add("B");
innerList.add("C");
for(String str:list){
for(String innerStr:innerList){
if(innerStr.equals("B")){
break;
}
System.out.println("外层:"+str+",内层:"+innerStr);
}
}
}
}
我们来看下多层循环会是什么结果那,
外层:1,内层:A
外层:2,内层:A
外层:3,内层:A
外层:4,内层:A
Process finished with exit code 0
可以看到内层循环仅执行了一次。由此,在多层循环下,break结束的是本层循环。
对于,break这个关键字,结束的是本层循环,满足break条件后的循环不会执行。
二、continue
2.1、单层循环
先看下在单层循环下,continue是如何工作的,
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试continue
* @date 2022/5/23 21:17
*/
public class TestContinue {
public static void main(String[] args) {
endCycle();
}
static void endCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for(String str:list){
if(str.equals("3")){
continue;
}
System.out.println(str);
}
}
}
执行结果如下,
1
2
4
Process finished with exit code 0
没用打印”3“,由此得出结论,continue在单层循环下,结束的是该循环中的本次循环,后面的循环会继续执行。在多次循环下呐?
2.2、多层循环
在多层循环下,
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试continue
* @date 2022/5/23 21:17
*/
public class TestContinue {
public static void main(String[] args) {
endMultiCycle();
}
/**
* 多层循环-continue
*/
static void endMultiCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
List<String> innerList=new ArrayList<String>();
innerList.add("A");
innerList.add("B");
innerList.add("C");
for(String str:list){
for(String innerStr:innerList){
if(innerStr.equals("B")){
continue;
}
System.out.println("外层:"+str+",内层:"+innerStr);
}
}
}
}
执行结果是下面这样的,
外层:1,内层:A
外层:1,内层:C
外层:2,内层:A
外层:2,内层:C
外层:3,内层:A
外层:3,内层:C
外层:4,内层:A
外层:4,内层:C
Process finished with exit code 0
可以看到外层循环正常,内层循环只有"B"未打印。由此,在多层循环下,continue结束的是本层循环中的本次循环。
三、return
小伙伴们肯定知道return代表方法的返回,那么用在循环中它是怎么起作用的呐,
3.1、单层循环
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试return
* @date 2022/5/23 21:40
*/
public class TestReturn {
public static void main(String[] args) {
endCycle();
}
/**
* 单层循环
*/
static void endCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for(String str:list){
if(str.equals("3")){
return;
}
System.out.println("单层:"+str);
}
System.out.println("方法结束");
}
}
执行结果,
单层:1
单层:2
Process finished with exit code 0
可以看到”方法结束“和”“3”后面的循环都未打印。在单层循环中,return会结束整个方法。
3.2、多层循环
package com.my.day02;
import java.util.ArrayList;
import java.util.List;
/**
* 测试return
* @date 2022/5/23 21:40
*/
public class TestReturn {
public static void main(String[] args) {
endMultiCycle();
}
/**
* 多层循环
*/
static void endMultiCycle(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
List<String> innerList=new ArrayList<String>();
innerList.add("A");
innerList.add("B");
innerList.add("C");
for(String str:list){
for(String innerStr:innerList){
if(innerStr.equals("B")){
return;
}
System.out.println("外层:"+str+",内层:"+innerStr);
}
}
}
}
结果如下,
外层:1,内层:A
Process finished with exit code 0
从上面的结果可以知道,在外层循环的第一次循环时,内层循环到“B”就会执行“return”,这时没再执行后面的。多层循环中,return结束的是整个方法的执行。
四、总结
今天在写程序时用到了多层循环,想结束内层循环,突然对如何结束循环有点把握不准,为此有了本文。
1、break用在结束本层循环,后面的循环不会继续执行;
2、continue用在结束本层循环中的本次循环,后面的循环会跳过本次循环继续执行,直到本层循环结束;
3、return结束的是整个方法;
break、continue、return中选择一个,我们结束掉它的更多相关文章
- js中的break ,continue, return (转)
面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...
- js中的break,continue,return
js中的break,continue, return (转) 面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢 ...
- break,continue,return的区别
break,continue,return的区别 break 当break语句用于循环语句时,会终止执行循环,并执行循环后代码(如果有的话). function main() { for(var i ...
- 详解C#break ,continue, return
C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范. C# ...
- 有关于break,continue,return的区别和代码分析
今天,用代码和结果直接解释break,continue,return的区别 1.break代码 public static void breakTest() { //break的讲解 for(int ...
- Java流程控制,for,switch,while.break,continue,return
Java流程控制,for,switch,while.break,continue,return
- Java基础(2):Java中的四个跳转语句总结goto,break,continue,return
跳转控制语句 Java中的goto是保留字,目前不能使用.虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情.为了弥补这 ...
- PHP中跳出循环break,continue,return,exit的区别
1. return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2) return 返回一个值给调用该方法的语句,返回值的数 ...
- js 中的break continue return
break:跳出整个循环 1.当i=6时,就跳出了整个循环,此for循环就不继续了: continue:跳出当前循环,继续下一次循环: return :指定函数返回值 1.在js当中,常使用retur ...
随机推荐
- java中Object类的getClass方法有什么用以及怎么使用?
Object类的getClass的用法: Object类中有一个getClass方法,m a r k- t o- w i n:它会返回一个你的对象所对应的一个Class的对象,这个返回来的对象 ...
- SQLite实现数据库的储存2+SQLite数据库可视化工具SQLite Stadio
今日所学 SQLite实现数据库的储存 查看数据库的两种方法 Android 中 SQLite 数据库的查看 - woider - 博客园 SQLite Studio安装教程 [SQLite]可视化工 ...
- mybatis 实现分页和过滤模糊查询
基于 mybatis 的分页和过滤查询 学习内容: 分页设计 1.分页需传递的参数 2.分页需展示的数据 3.分页需展示的数据的来源 3.1.结果总数与结果集(分页原理) 3.2.总页数.上一页和下一 ...
- 微信支付之微信H5支付(坑,ajax不支持重定向跳转)
这里讲的是 微信h5支付, 是微信以外的手机浏览器调用微信h5支付 h5支付: H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起 ...
- 将本地代码上传到gitLab
1. 在远程gitLab仓库创建项目, 执行下列命令 git init git remote add origin git@10.10.xxx.git (gitLab刚刚创建的工程地址) git ...
- 将子分支代码merge到主分支master分支
1.首先切换到子分支: git checkout develop2.使用git pull 把分支代码pull下来: git pull3.切换到主分支: git checkout master4.把分支 ...
- python——如何import包目录
文件位置 文件所在位置包括 , 源根目录的位置 该文件位置(也可以叫相对位置). 导入包的时候会从文件位置进行查找,并导入. 导入包 1. 什么是包? pycharm中包的图片 其中文件夹上有个圆点的 ...
- Linux shell中2>&1的含义解释
https://blog.csdn.net/zhaominpro/article/details/82630528
- InnoDB两次写
partial page write问题: 默认情况下,innodb的一个页面时16k大小,其数据校验也是针对这16k来校验的,将数据写入磁盘是以页面为单位的.文件系统是以4k为单位写入的,机械磁盘是 ...
- 基于pgrouting的路径规划处理
对于GIS业务来说,路径规划是非常基础的一个业务,一般公司如果处理,都会直接选择调用已经成熟的第三方的接口,比如高德.百度等.当然其实路径规划的算法非常多,像比较著名的Dijkstra.A*算法等.当 ...