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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐凯 黑马帝   /  2011-8-5 15:06  /  2228 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在学习了return和break的语句,有时候for语句里面连上一

连串的if else语句,我就懵了,这时候,return和break是怎

么个使用情况,

5 个回复

倒序浏览
黑马网友  发表于 2011-8-5 15:35:19
沙发
return语句总是用在方法中,有两个作用,一个是返回方法指定类型的值(这个值总是确定的),[code]int  aaa()
{
    int a =3;
    return a;
}[/code]另一个作用就是结束方法的执行(仅仅一个return语句)。如:[code]for(i=0;i<3;i++)
{
     if(i==2)
          return;
}[/code]这样的话,当i=2时,就会结束这个for循环了
对于break就是指结束循环的意思,其次还有一个是continue,continue是结束本次循环,继续下一次循环,也就是跳出这次的循环,[code]public class BreakAndContinue
{
        public static void main(String[] args) {
                /*break:
                * i=5的时候结束循环*/
                System.out.println("Java中的break.");
                for(int i=0;i<10;i++)
                {
                        if(i==5){
                                System.out.println("i="+i+"时,结束循环");
                                break;
                        }
                        System.out.println(i);
                }
               
                System.out.println();
               
                System.out.println("Java中的continue.");
                /*continue:
                * 当i=5时候,不打印i=5,接着i自加到6继续执行for循环一直到i=10循环结束
                * */
                for(int i=0;i<10;i++)
                {
                        if(i==5)
                                continue;
                        System.out.println("i="+i);
                }
        }
}[/code]
回复 使用道具 举报
黑马网友  发表于 2011-8-5 15:52:31
藤椅
当程序运行到return语句时,该语句所在的整个方法就会结束执行并获得相应的返回值(如果有的话)。
在循环中使用break时,break使程序跳出当前的这一层循环,有外循环体的话执行外循环体,没有的话执行下面的语句;break在switch case语句块中使用时,使得程序跳出当前的语句块。
总之,return使得其所在的整个方法结束执行获得相应的返回值,而break仅结束当前的循环或switch case语句块。
回复 使用道具 举报
黑马网友  发表于 2011-8-5 17:04:59
板凳

回复 楼主 的帖子

使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。

而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句

return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。尽管对return 语句详细讨论在第 7 章开始,这里对其作简要地介绍。在一个方法任何时间,return 语句可被用来使正在执行分支程序返回到调用它方法。下面例子说明这一点。下例中,由于是Java 运行系统调用main() ,因此,return语句使程序执行返回到Java 运行系统。 // Demonstrate return. class Return { public static void main(String args[]) { boolean t = true; System.out.println(”Before the return.”); if(t) return; // return to caller System.out.println(”This won’t execute.”); } } 该程序结果如下: Before the return. 正如你看到一样,最后println( ) 语句没有被执行。一旦return语句被执行,程序控制传递到它调用者。 最后一点:在上面程序中,if(t)语句是必要。没有它,Java 编译器将标记“执行不到代码”(unreachable code )错误,因为编译器知道最后println ()语句将永远不会被执行。为阻止这个错误,为这个例子能够执行,在这里使用if语句来“蒙骗”编译器。
回复 使用道具 举报
黑马网友  发表于 2011-8-5 17:45:09
报纸

回复楼主

break:终止本循环。但是如果for下面还有其它语句照样被执行。

return:终止本循环。且直接返回,不执行return之后的任何语句。

比如有一个函数——



public void Fun()

{

    for (int i=1;i<10;++i)

    {

           if(i>=5) break;

    }

    System.out.println("return之后的语句");

}



public void Fun2()

{

for (int i=1;i<10;++i)

{

if(i>=5) return;

}

System.out.println("return之后的语句");

}



主函数设法调用这两个函数,然后仔细观察输出情况(注意最后for循环是否输出“return之后的语句”)
回复 使用道具 举报
黑马网友  发表于 2011-8-5 17:57:26
地板
原则上在所有代码中,都可以不使用,至于怎么解决你的问题,把代码逻辑理顺就好了,问题有点无聊,刷分也要艺术
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马