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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马任雪刚 中级黑马   /  2012-5-24 16:40  /  2979 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java中return和break有什么不同,求详解,最好有示例,谢谢!!!

8 个回复

倒序浏览
return 可以返回与方法同类型的值,并结束整个方法

break 存在于循环判断语句中,用于结束最近的循环
回复 使用道具 举报
return 用于返回函数(方法)运行之后的值,return 之后的语句将不会被执行 ,以这条语句结束这个函数。
而那个break主要是用于循环判断语句中,当条件成立时就跳出了整个循环体。continue是跳出本次循环,执行下一次的循环。
回复 使用道具 举报
return 结束当前函数,返回return的值
break 跳出当前循环
回复 使用道具 举报
break;是跳出循环;
return; 直接返回方法,结束整个函数。

break
一般用于跳出本循环,即跳出break所在的循环,哪个循环调用了break,就跳出哪个循环;


比如:
while()
  {
    for(;;)
    {
     …………
      break;
       ……
        }
    }


在这段模板中,for 调用了break;当执行到break时跳出for,但是不跳出while,而是继续执行while循环


return
一般的用法 时为了实现返回,返回一个值或其他复杂类型,都是可以的,
return 一般都用在被调用的对象(对象一)里面,调用以后返回到调用对象(对象二)即,当对象二调用对象一时,如果对象一内部调用了return语句,则程序执行返回到,对象二调用对象一得下一条语句继续执行,
比如:(这里的对象在C语言里面就是函数)
对象一()
{
return;
}
对象二()
{
语句一;
对象一();
语句二;


}
当程序执行到对象二时,会调用对象一,转到对象一种去执行,当执行到return时,会返回到对象二中,执行语句二


对于你的提问现给出如下解释:
第一个程序段


时对于return的调用,调用之后,程序会跳出main函数,也就是说return有结束函数调用的功能。


第二个程序段:
do
while();
是一个循环体,break在循环内部调用,跳出循环,但不跳出if

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
break主要是应用与循环语句中,而return主要是函数中
回复 使用道具 举报
本帖最后由 丁桂松 于 2012-5-28 16:53 编辑
  1. package java基础知识;

  2. public class Break与Continue的比较 {

  3.         /**
  4.          * @param break语句无条件结束整个循环结构,continue语句是否结束循环要根据条件进行判断,且continue语句结束的是本次循环体后面的语句,不是结束整个循环结构
  5.          */
  6.         public static void main(String[] args) {
  7.                 //break和continue语句的比较
  8.                 int sum = 0;
  9.                 for (int i=0;i<5;i++){
  10.                         if (i == 3){
  11.                                 //break;
  12.                                 continue;
  13.                         }
  14.                 sum += i;        
  15.                 }
  16.                 System.out.println("sum= "+sum);
  17.         }
  18.         //输出结果是 sum =7 如果把continue换成break,输出结果是 sum =3
  19. }
复制代码
回复 使用道具 举报
  1. package java基础知识;

  2. import java.util.Scanner;

  3. public class BreakTest {

  4.         /**
  5.          * @param 循环录入学生的5门成绩,如果学生的成绩录入为负数,停止录入,并提示"输入错误!"
  6.          */
  7.         public static void main(String[] args) {
  8.                 //
  9.                 Scanner input = new Scanner(System.in);
  10.                 System.out.println("请输入学生的姓名 : ");
  11.                 String name = input.next();
  12.                 System.out.println("姓名 :"+name);
  13.                 double chengji = 0 ; //定义变量初始化学生的成绩
  14.                 for (int i = 1; i <=5 ; i++){
  15.                         System.out.println("请你输入学生第"+i+"门的成绩 : ");
  16.                         chengji = input.nextDouble(); //键盘输入  接受学生的成绩
  17.                 if(chengji < 0){
  18.                         break; //退出for循环
  19.                         }
  20.                 }
  21.                 System.out.println("你输入的成绩错误!!");
  22.         }
  23. }
复制代码
回复 使用道具 举报
  1. package java基础知识;

  2. import java.util.Scanner;

  3. public class Continue语句 {

  4.         /**
  5.          * @param 统计随机录入10个数中偶数的综合.这样的问题可以通过continue语句来解决
  6.          * 问题分析:
  7.          * 1,通过循环,获得随机录入的10个数
  8.          * 2,判断:如果当前数不是偶数直接执行continue,不执行累加命令直接进入下一次循环
  9.          *
  10.          * 什么是continue语句:
  11.          * continue语句的作用是跳过循环体中剩余的语句而执行下一次循环.
  12.          * 语法:
  13.          * 代码块(...){
  14.          *                 ..
  15.          *                 continue;
  16.          *                 ..
  17.          * }
  18.          * continue一般与条件语句一起使用,加速循环:
  19.          * for (int i=0 ; i<10 ; i++){
  20.          * 跑400米;
  21.          * if (!口渴){
  22.          *         continue;
  23.          *  不喝水,继续跑
  24.          *         }
  25.          *         接过水壶,喝水;
  26.          * }
  27.          */
  28.         public static void main(String[] args) {
  29.                 // 循环录入Java考试的学生成绩,统计分数大于等于80分的学生占全部学生的比例
  30.                 Scanner input = new Scanner(System.in);
  31.                 System.out.println("请你输入班级的人数: ");
  32.                 double score = 0;
  33.                 int count = 0;//定义一个变量来统计大于等于80分的学生的人数
  34.                 int renshu = input.nextInt();
  35.                 for(int i = 1; i <= renshu ; i++){
  36.                         System.out.println("请你输入第"+i+"的学员的分数: ");
  37.                         score = input.nextDouble();
  38.                         //判断分数是否大于等于80
  39.                         if(score <80){
  40.                                 continue;
  41.                         }
  42.                         count ++;//统计大于等于80分的分数出现的次数
  43.                 }
  44.                 System.out.println("全班大于等于80分的学生的比例是:"+( count/renshu)*100 +"%");
  45.         }
  46.         //break语句无条件结束整个循环结构,continue语句是否结束循环要根据条件进行判断,且continue语句结束的是本次循环体后面的语句,不是结束整个循环结构
  47. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马