A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法的返回值定义为void,为什么还可以使用 return ;
return 终止循环和break终止循环的区别?


public class Test
{
        public static void main(String[] args)
        {
                for(int j=0;j<100;j++)
                {
                        if(j==10)
                        {
                                System.out.println("j="+j);
                                break;
                        }
                }
               
                for(int i=0;i<100;i++)
                {
                        if(i==10)
                        {
                                System.out.println("i="+i);
                                return ;
                        }
                }
               
               
        }
       
}

8 个回复

倒序浏览
return不是终止循环,是终止函数,break是跳出所在循环,所在函数还会继续执行
回复 使用道具 举报
这问题提得好好,总结了一下break,return,还有continue,例子可能不太恰当。return就是函数返回的意思。break是退出最近的循环。continue是停止当前执行的反复,开始新的反复。
  1. package com.study.two;

  2. public class Test3
  3. {
  4.         public static void main(String[] args) {

  5.                 for (int j = 0; j < 3; j++) {
  6.                         for (int i = 0; i < 3; i++) {
  7.                                 System.out.println("i=" + i);
  8.                                 continue;
  9.                         }
  10.                         System.out.println("j=.........." + j);
  11.                 }
  12.                 System.out.println("-----------------------");

  13.                 for (int j = 0; j < 3; j++) {
  14.                         for (int i = 0; i < 3; i++) {
  15.                                 System.out.println("i=" + i);
  16.                                 break;
  17.                         }
  18.                         System.out.println("j=.........." + j);
  19.                 }
  20.                 System.out.println("-------break与return的区别----------------");

  21.                 for (int j = 0; j < 3; j++) {
  22.                         for (int i = 0; i < 3; i++) {
  23.                                 if (i == 2) {
  24.                                         System.out.println("i=" + i);
  25.                                         break;
  26.                                 }
  27.                         }
  28.                         System.out.println("j=.........." + j);
  29.                 }
  30.                 System.out.println("-----------------------");
  31.                 for (int j = 0; j < 3; j++) {
  32.                         for (int i = 0; i < 3; i++) {
  33.                                 if (i == 2) {
  34.                                         System.out.println("i=" + i);
  35.                                         return;
  36.                                 }

  37.                         }
  38.                         System.out.println("j=.........." + j);
  39.                 }

  40.         }
  41. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报 1 0
break是直接跳出当前循环,也就是说循环后面有东西的话会继续执行后面的东西
return是返回一个数 然后再结束整个函数或者方法,也就是return之后的代码 还没有被运行 这个程序就结束了
回复 使用道具 举报
a6217815 发表于 2014-6-9 17:58
break是直接跳出当前循环,也就是说循环后面有东西的话会继续执行后面的东西
return是返回一个数 然后再结 ...

纠正一下,不是 程序就结束了,是方法结束了
回复 使用道具 举报
break是跳出当前整个循环语句,而continue是跳过当前循环的某一个条件语句的动作,return则是跳出当前函数而不往下继续执行。
回复 使用道具 举报
改了一下测试代码:
  1. package com.study.two;

  2. public class Test3
  3. {
  4.         public static void main(String[] args) {

  5.                
  6.                 System.out.println("-------break与continue的区别----------------");
  7.                 for (int j = 0; j < 3; j++) {
  8.                         for (int i = 0; i < 3; i++) {
  9.                                 if(i==1)
  10.                                   continue;
  11.                                 System.out.println("i="+i);
  12.                         }
  13.                         System.out.println("j=.........." + j);
  14.                 }
  15.                 System.out.println("-----------------------");

  16.                 for (int j = 0; j < 3; j++) {
  17.                         for (int i = 0; i < 3; i++) {
  18.                                 if(i==1)
  19.                                   break ;
  20.                                 System.out.println("i="+i);
  21.                         }
  22.                         System.out.println("j=.........." + j);
  23.                 }
  24.        
  25.                 System.out.println("-------break与return的区别----------------");

  26.                 for (int j = 0; j < 3; j++) {
  27.                         for (int i = 0; i < 3; i++) {
  28.                                 if (i == 2) {
  29.                                         System.out.println("i=" + i);
  30.                                         break;
  31.                                 }
  32.                         }
  33.                         System.out.println("j=.........." + j);
  34.                 }
  35.                 System.out.println("-----------------------");
  36.                 for (int j = 0; j < 3; j++) {
  37.                         for (int i = 0; i < 3; i++) {
  38.                                 if (i == 2) {
  39.                                         System.out.println("i=" + i);
  40.                                         return;
  41.                                 }

  42.                         }
  43.                         System.out.println("j=.........." + j);
  44.                 }

  45.         }
  46. }
复制代码


测试结果是:

-------break与continue的区别----------------
i=0
i=2
j=..........0
i=0
i=2
j=..........1
i=0
i=2
j=..........2
-----------------------
i=0
j=..........0
i=0
j=..........1
i=0
j=..........2
-------break与return的区别----------------
i=2
j=..........0
i=2
j=..........1
i=2
j=..........2
-----------------------
i=2
回复 使用道具 举报
123_yaya 发表于 2014-6-9 17:50
这问题提得好好,总结了一下break,return,还有continue,例子可能不太恰当。return就是函数返回的意思。bre ...

谢谢你的耐心解答

点评

其实我也能学到东西,觉得你提的问题好好,我之前都没留意到,就自己总结了一下,大家一块学习。  发表于 2014-6-9 19:36
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马