黑马程序员技术交流社区

标题: 请问break跳出循环和return跳出循环有什么区别? [打印本页]

作者: dongyangzhang    时间: 2013-4-15 17:04
标题: 请问break跳出循环和return跳出循环有什么区别?
本帖最后由 dongyangzhang 于 2013-4-15 17:21 编辑

我的面试题,我是这么写的,已提交了,使用break和return都能跳出循环,请问两者之间有什么区别吗?
package com.itheima;
/**
* 第八题:先写一个程序,打印从1到100的值。之后修改程序,通过使用break关键词,使得程序在打印到98时退出。然后尝试使用return来达到相同的目的。
* @author Administrator
*/
public class Test8 {
public static void main(String[] args) {
  //使用for循环打印1到100的值
  for(int i=0;i<100;i++){
   System.out.println(i+1);
   if(i+1==98){
    //使用break语句跳出for循环
    break;
    //ruturn也可以跳出for循环
    //return;
   }
  }
}
}

作者: 梁航斌    时间: 2013-4-15 17:10
break是用来跳出循环的,例如for,while,do-while都可以跳出,但不跳出函数。
return是使整个函数返回的,后面的不管是循环里面还是循环外面的都不执行。
作者: dongyangzhang    时间: 2013-4-15 17:20
梁航斌 发表于 2013-4-15 17:10
break是用来跳出循环的,例如for,while,do-while都可以跳出,但不跳出函数。
return是使整个函数返回的, ...

谢谢懂了
作者: 崔自成    时间: 2013-4-15 17:21
break是专门作用于循环语句的,用于控制循环的流程,表示强制退出循环,但是如果你的方法里除循环外还有其他语句是要被执行的。
而return表示退出当前方法,并且返回值(如果方法指定有返回值的话),也就是说,执行了return,下面的所有语句都不会执行了。
把你的程序改下,应该可以看出来:
  1. public class Test8 {
  2.         public static void main(String[] args) {
  3.                 //这个方法里有三个循环
  4.                 for(int i=0;i<100;i++){
  5.                         System.out.print(i+1+" ");
  6.                         if(i+1==98){
  7.                         break;//执行break之后退出循环,执行下面的语句
  8.                         }
  9.                 }
  10.                
  11.                 System.out.println("================");

  12.                 for(int i=0;i<100;i++){
  13.                         System.out.print(i+1+" ");
  14.                         if(i+1==98){
  15.                         return;//执行return之后,方法退出,后面的打印语句和循环语句都执行不了了。
  16.                         }
  17.                 }

  18.                 System.out.println("================");

  19.                 for(int i=0;i<100;i++){
  20.                         System.out.println(i+1+" ");
  21.                        
  22.                 }

  23.         }
  24. }
复制代码

作者: 刘永建    时间: 2013-4-15 17:29
有三种方法可以跳出或者终止for循环,它们分别是break,returned,和continue
使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。
  而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句
  return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。尽管对return 语句详细讨论在第 7 章开始,这里对其作简要地介绍。在一个方法任何时间,return 语句可被用来使正在执行分支程序返回到调用它方法。
作者: dongyangzhang    时间: 2013-4-15 17:32
崔自成 发表于 2013-4-15 17:21
break是专门作用于循环语句的,用于控制循环的流程,表示强制退出循环,但是如果你的方法里除循环外还有其 ...

嗯,太感谢了。请问怎么把代码发出来和你的一样?我的代码怎么那么不整洁啊
作者: dongyangzhang    时间: 2013-4-15 17:36
刘永建 发表于 2013-4-15 17:29
有三种方法可以跳出或者终止for循环,它们分别是break,returned,和continue
使用break 退出循环 可以使用 ...

谢谢你,学习了
作者: 崔自成    时间: 2013-4-15 17:54
dongyangzhang 发表于 2013-4-15 17:32
嗯,太感谢了。请问怎么把代码发出来和你的一样?我的代码怎么那么不整洁啊 ...

哦  ,发帖或回帖的时候,编辑栏有个  " <> "  符号用来插入代码的,应该就在笑脸的左边




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2