深度解析continue,break和return
continue,break和return是Java中的关键字,在方法体内的流程控制中使用频率较高。
在现实中,经常会有同学在使用中产生混淆,从而使得流程控制语句发生混乱。在这里,我结合个人的使用经历,通过Java编程为大家解析三者在实际使用中的区别。
1.continue
通常出现在循环控制结构中,表示结束本次循环,然后继续进行后面的循环。举例:
class Demo1 {//声明一个类Demo1
public static void main(String[] args) {//入口函数
for(int i=0;i<5;i++){//for循环
if(i==3){//当i=3时,仅结束本次循环,但是for循环剩余次数并未结束
break;
}
System.out.println(i);//在控制台打印输出循环遍历的数字
}
System.out.println("for循环之后");
}
}
在控制台打印输出如下:
0
1
2
4
for循环之后
可见,当i=3时,仅结束本次循环,for循环剩下的次数并未结束;同时,for循环之后的语句可以正常执行,比如控制台打印输出“for循环之后”。
我们再来看break的效果。
2.break
我们还用上面的代码,不同的是将continue改为break。
class Demo1 {//声明一个类Demo1
public static void main(String[] args) {//入口函数
for(int i=0;i<5;i++){//for循环
if(i==3){//当i=3时,结束for循环
break;
}
System.out.println(i);//在控制台打印输出循环遍历的数字
}
System.out.println("for循环之后");
}
}
控制台打印输出结果是:
0
1
2
for循环之后
可见,当i=3时,for循环结束,不再执行剩余的次数,同时继续执行for循环之后的语句(如打印输出“for循环之后”)。
上面是一层or循环,如果在两层for循环中使用break后会怎样呢?请看下面的代码:
class Demo1 {//声明一个类Demo1
public static void main(String[] args) {//入口函数
for(int j=0;j<3;j++){//外层for循环
for(int i=0;i<5;i++){//内层for循环
if(i==3){//当i=3时,结束内层for循环
break;
}
System.out.println(i);//在控制台打印输出循环遍历的数字
}
System.out.println("*********");//一轮内层for循环结束时的分隔符
}
System.out.println("for循环之后");
}
}
控制台打印输出结果是:
0
1
2
*********
0
1
2
*********
0
1
2
*********
for循环之后
可见,在两层for循环中,break只是结束了所在层的for循环(即内层for循环),对外层for循环并未起到作用。
那么,改为return后会怎样呢?
3.return
我们先来看下面的代码:
class Demo1 {//声明一个类Demo1
public static void main(String[] args) {//入口函数
for(int j=0;j<3;j++){//外层for循环
for(int i=0;i<5;i++){//内层for循环
if(i==3){//当i=3时,结束方法
return;
}
System.out.println(i);//在控制台打印输出循环遍历的数字
}
System.out.println("*********");//一轮内层for循环结束时的分隔符
}
System.out.println("for循环之后");
}
}
控制台打印输出为:
0
1
2
可见,使用return后,整个方法结束。
最后做下总结:在循环控制语句中,continue仅结束本次循环;break可以结束本层循环;return出现的地方,当前方法结束。
希望能帮到您!
深度解析continue,break和return的更多相关文章
- php中 continue break exit return 的区别
php 中的循环有 for foreache while do{} whlie这几种. 1.continue continue是用来在循环结构中,控制程序放弃本次循环continue: 之后的语句,并 ...
- js的break语句,continue语句,return语句
js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...
- 在jquery中each循环中,要用return false代替break,return true代替continue。
在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...
- JS中的continue,break,return的区别
关于continue.break.return的用法区别早在大一C语言学习中研究过,这里单独拿出来,总结一下. 还是来点实在的吧,上代码 <!DOCTYPE html PUBLIC " ...
- C++ 退出双层for循环,解决 break、return、continue无法实现问题
遇到一个情景,采用双层for循环 遍历图像的像素,当找到某一个像素点满足条件时,退出双层for 循环 . 首先了解一下 continue.break.return 各自功能用法: 1.continue ...
- 【转】C#中continue、break和return用法
continue和break的用法一样,直接写上这个单词,后面加一个分号就行 比如: continue; break; 我们先来谈continue 看代码 for (int i=0; i<10; ...
- Java中关键字continue、break和return的区别
Java中关键字continue.break和return的区别: continue:跳出本次循环继续下一次循环 break: 跳出循环体,继续执行循环外的函数体 return: 跳出整个函数 ...
- JavaScript的continue、break和return的区别
1. continue.break和return的区别 循环遍历. for(let i = 0; i < 5; i++){ console.log(i); // 0 1 2 3 4 } 使用co ...
- break,return,continue的区别和作用
学习目标: 理解break.return.continue在循环中的区别和作用 学习内容: 1.break break表示结束当前所在的循环. 循环输出到3,当i等于4后,跳出当前循环,继续向下执行循 ...
随机推荐
- session多服务器共享的方案
session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点.我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中 ...
- 面向接口编程实现不改代码实现Redis单机/集群之间的切换
开发中一般使用Redis单机,线上使用Redis集群,因此需要实现单机和集群之间的灵活切换 pom配置: <!-- Redis客户端 --> <dependency> < ...
- Chrome等浏览器下出现net::ERR_BLOCKED_BY_CLIENT的解决办法
当我们在做开发时,调试页面图片会出现部分图片无法正常显示,并且确认图片的地址正确: 按F12 Debug查看报错原因,提示net::ERR_BLOCKED_BY_CLIENT错误,但当我们点击图片地址 ...
- daterangepicker 使用方法以及各种小bug修复
双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件,可以设定多个时间段选项,也可以自定义时间段,由用户自己选择起始时间和终止时间,时间段的最大跨度可以在 ...
- 深入理解Java虚拟机--中
深入理解Java虚拟机--中 第6章 类文件结构 6.2 无关性的基石 无关性的基石:有许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),从而 ...
- ip完整验证详情
不想跳坑就看一下 之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做 ...
- servlet的运行工作
我是一个刚学几天的小白,写得不好,如果哪个地方有错误,欢迎你们指出. 在服务器端,我用的是Tomcat作为Servlet 容器,在容器中有一个Servlet接口,你编写一个servlet类放在Tomc ...
- Redis基本认识和基础学习-基本命令
Redis 基本介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANS ...
- 使用SQL语句时应该注意的一些问题
DECLARE @Where NVARCHAR(max); SET @Where=''; --初始查询条件 SET @Where+=' '; 1.当要对变量使用 "+="时,需要先 ...
- c++连接数据库 在vc6.0
配置相关环境 我的mysql安装路径为E:\mysql-5.5.28-win32所以要在VC中设置include路径和lib的路径. 添加MySql的include目录到VC工作台中Project-& ...