return, break and continue
最近学习多线程看到了一个描述不太准确的地方,让我对return break continue个语句的不同开始详细了解了一番,之前只是知道怎么使用,不是很深入研究,基本遇到了跳出就用return来解决全部问题。
代码:
public class Test {
public static void main(String[] args) {
try {
Mythread mythread=new Mythread();
mythread.start();
Thread.sleep(1000);
mythread.interrupt();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Mythread extends Thread{
public void run(){
super.run();
for(int i=0;i<500000;i++){
if(this.interrupted()){ //判断线程是否停止
System.out.println("STOP!!");
break;
}
System.out.println("i= "+(i+1));
}
System.out.println("END!!!");
}
}
在看这段代码的时候是这样解释的:虽然停止了线程,但是如果for之后还有语句,还是会继续运行的。让我错误的理解为在这里使用break的时候会线程先退出了,然后又重启了。显然这样的理解是不对的,应该是break只是退出了这个for循环语句,线程继续执行直到这个方法结束。
首先,return:
return这个语句是作为返回的语句,将函数或者方法的值返回给主调函数,然后改函数执行结束。
比如:
for(int i=0;i<500000;i++){
if(i==1){
System.out.println("STOP!!");
return 0;
}
System.out.println("i= "+(i+1));
}
这里返回值为0,当i的值为1的时候输出了STOP并且这个函数/方法的返回值为0,然后这个函数就停止执行,return语句直接跳出就跳出了函数,包括函数中的方法。
之后就是 break
break一般作为条件分之或者循环的跳出语句,使程序跳出循环执行之后的继续执行之后的程序。
比如第一个程序中使用的break,程序的for循环遇到线程停止的结果的时候会执行break语句,然后跳出这个for循环,之后继续执行这个方法中之后的语句,知道之后的代码运行完成之后。
最后一个是continue语句
这个语句我使用的很少,基本没有用到过,这个语句就是跳过循环一次继续执行这个,这个应该很好想了。
=========================================

return, break and continue的更多相关文章
- return break 和continue在for循环中的不同作用
平时自己经常在函数里见到return,在switch语句中使用break,而continue则用的不多. 其实这三者都能在for循环中发挥不同的作用,让代码更加灵活. 先说return return是 ...
- break、continue、return
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 浅谈break 、continue、return,goto四种语句的区别。
浅谈break .continue.return三种语句的区别: break,continue,return这三个具有跳转功能的语句在c语言中经常被用到,近期身边有些小伙伴总是把它们的用法搞乱,在这里 ...
- return、break、continue的区别
一.定义 return:语句用于终止当前方法运行,返回到调用该方法的语句处.如有返回值,则在return后面提供相应的返回值. break:其主要用于循环语句和switch语句,其作用均是强行终止语句 ...
- php exit、return、break、continue之间的差别,具体介绍
相信大家在php开发中有几个经常使用的停止程序和循环的keyword的误区( exit.return.break.continue) exit 退出全部脚本,是个函数 return 语言结构的使用方法 ...
- 在jquery中each循环中,要用return false代替break,return true代替continue。
在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...
- C++中 return,break,continue的用法
引用:https://blog.csdn.net/smf0504/article/details/51315835 https://blog.csdn.net/ting_junhui/article/ ...
- return、break和continue
return.break和continue 这三个关键字有一个共同点,那就是读能让后面的语句不执行,不同的地方就是挑的距离不一样. return很强大,如果一个函数中有一个return,并且执行了,那 ...
- break、continue以及return的区别
break.continue以及return的区别如下: 1.break break用于完全结束一个循环,跳出循环体,不再执行下面的代码.对于多层循环嵌套,如果break语句出现在嵌套循环中的内循环时 ...
随机推荐
- Memcahe安装与配置
1.先启动Memcahe服务 (1)通过Memcahe文件夹下的memcahe.exe程序启动 (2)将Memcahe加到Windows服务中去 为了方便使用,大多数情况下,是使用第二种方式,来启动M ...
- Hibernate核心开发接口_SessionFactory详解
SessionFactory: a) 用来产生和管理Session b)通常情况下每个应用只需要一个SessionFactory c)除非要访问多个数据库的情况 d) 关注两个方法即: openS ...
- WebDriver+TestNG的一个典型例子
想让测试更加灵活,1. 可以配置使用任意支持的浏览器进行测试:2. 配置所有Google的URL:3. 配置搜索的关键字.修改后的代码: public class GoogleTest { WebDr ...
- 四大组件之Service
1 通过startService 1.1 与调用者相对独立,没有返回,用于播放音乐,下载文件 1.2 如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行.下次 ...
- 使用wireshark出现Couldn't run /usr/bin/dumpcap in child process: Permission denied解决办法
sudo apt-get install libcap2-bin wireshark sudo chgrp myusername /usr/bin/dumpcap # myusername是你使用wi ...
- 低版本的linux系统装samba服务器
这里所用系统fedora14,安装samba服务器.我是壮壮熊. 由于工作原因,需要在feaord14上装samba服务器. 问题描述:用yum -y install samba安装samba后,需要 ...
- 【AngularJs】---JSONP跨域访问数据传输(JSON_CALLBACK)
大家会自然想到只有一个字母之差的JSON吧~ JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不 ...
- 图标插件FusionChartsFree
二.介绍 Ø FusionCharts 是InfoSoft Global 公司的一个产品,InfoSoft Global 公司是专业的Flash 图形方案提供商,他们还有几款其他的,基于Flash 技 ...
- 01.CLR的执行模型
在非托管的C/C++中,可以进行一些底层的操作 "公共语言运行时"(CLR)是一个可由多种编程语言使用的"运行时" CLR的核心功能包 ...
- Vue生命周期学习
转自https://www.w3cplus.com/vue/vue-instances-and-life-cycles.html Vue实例虽然没有完全遵循MVVM模型,但Vue的设计无疑受到了它的启 ...