return, break and continue

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

代码:

 1 public class Test {
 2    public static void main(String[] args) {
 3       try {
 4          Mythread mythread=new Mythread();
 5          mythread.start();
 6          Thread.sleep(1000);
 7          mythread.interrupt();
 8       } catch (InterruptedException e) {
 9          e.printStackTrace();
10       }
11    }
12 }
13 
14 class Mythread extends Thread{
15    public void run(){
16       super.run();
17       for(int i=0;i<500000;i++){
18          if(this.interrupted()){       //判断线程是否停止
19             System.out.println("STOP!!");
20             break;
22          }
23          System.out.println("i= "+(i+1));
24       }
25       System.out.println("END!!!");
26    }
27 }

在看这段代码的时候是这样解释的:虽然停止了线程,但是如果for之后还有语句,还是会继续运行的。让我错误的理解为在这里使用break的时候会线程先退出了,然后又重启了。显然这样的理解是不对的,应该是break只是退出了这个for循环语句,线程继续执行直到这个方法结束。

首先,return:

return这个语句是作为返回的语句,将函数或者方法的值返回给主调函数,然后改函数执行结束。

比如:

1 for(int i=0;i<500000;i++){
2          if(i==1){      
3             System.out.println("STOP!!");
4             return 0;
5          }
6          System.out.println("i= "+(i+1));
7       }

这里返回值为0,当i的值为1的时候输出了STOP并且这个函数/方法的返回值为0,然后这个函数就停止执行,return语句直接跳出就跳出了函数,包括函数中的方法。

之后就是 break

break一般作为条件分之或者循环的跳出语句,使程序跳出循环执行之后的继续执行之后的程序。

比如第一个程序中使用的break,程序的for循环遇到线程停止的结果的时候会执行break语句,然后跳出这个for循环,之后继续执行这个方法中之后的语句,知道之后的代码运行完成之后。

最后一个是continue语句

这个语句我使用的很少,基本没有用到过,这个语句就是跳过循环一次继续执行这个,这个应该很好想了。

 

=========================================

posted @ 2015-12-02 16:52  小马甲奶糖  阅读(333)  评论(0编辑  收藏  举报