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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雷丹 中级黑马   /  2013-10-24 22:20  /  1736 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch(curEnum){
case RED:
curEnum=GREEN;
break;
case GREEN:
curEnum=YELLOW;
         break;
case YELLOW:
curEnum=RED;
  break;
}
return curEnum;
以上代码这样写是没有错误的,但如果我这样改的话就会出现错误
switch(curEnum){
case RED:
return curEnum=GREEN;
break;
case GREEN:
return curEnum=YELLOW;
         break;
case YELLOW:
return curEnum=RED;
  break;
}
变成这样写之后就出现错误了,我想问一下return和break是怎样用的?return和break运行的原理

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

7 个回复

倒序浏览
return 后面不能跟语句,因为ruturn如果执行,该方法也就执行完毕,并返回值。break是结束语句,而不是方法。跳出swith语句而已。
回复 使用道具 举报
return 返回后面的,后面的break没有执行到
break 结束了循环
return 一般是结束方法,break结束循环
还有一个continue是跳过本次循环

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
break 是结束switch语句,break是结束整个函数,如果是被调用的函数,return后面要接相应的返回值 然后跳出被调用的函数,继续运行主函数.执行break后 跳出switch 继续执行switch后的语句 如果用return, 那么就是跳出整个函数。return是结束整个循环。

评分

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

查看全部评分

回复 使用道具 举报
break:在一具循环体中,如果用break返回, 则不管其后面是否有满足条件的情况,都不做循环体,即不会做;跳出。
return:一般的就是用在有反回值的方法中,用来返回方法指定类型的值,同时结束方法执行;也可以用在返回值为void的方法中,用来终止方法运行;

评分

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

查看全部评分

回复 使用道具 举报
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
break语句虽然可以独立使用,但通常主要用于switch语句中,控制程序的执行流程转移。
在switch语句中,其作用是强制退出switch结构,执行switch结构之后的语句。其本质就是在单层循环结构体系中,其作用是强制退出循环结构。
return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。
因此,将它分类为跳转语句.有两个作用,一个是返回方法指定类型的值(这个值总是确定的);
一个是结束方法的执行(仅仅一个return语句)。 return 语句可以使其从当前方法中退出,返回到调用该方法的语句处,继续程序的执行 。

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 魏-玉-彪 于 2013-10-25 22:35 编辑
  1. switch(curEnum){
  2. case RED:
  3. curEnum=GREEN;
  4. break;
  5. case GREEN:
  6. curEnum=YELLOW;
  7. break;
  8. case YELLOW:
  9. curEnum=RED;
  10. break;
  11. }
  12. return curEnum;
复制代码
以上代码这样写是没有错误的,这样改的话就会出现错误
  1. switch(curEnum){
  2. case RED:
  3. return curEnum=GREEN;
  4. break;
  5. case GREEN:
  6. return curEnum=YELLOW;
  7. break;
  8. case YELLOW:
  9. return curEnum=RED;
  10. break;
  11. }
复制代码
但是这样改的话就不会出错:
  1. public  static curEnum switch(curEnum){   //此处加上本函数(方法)的权限和返回值类型。</font>
  2. switch(curEnum){
  3. case RED:
  4. return curEnum=GREEN;

  5. case GREEN:
  6. return curEnum=YELLOW;

  7. case YELLOW:
  8. return curEnum=RED;

  9. }
复制代码
return 是要给方法调用者返回一个值。而break 只是中止了此次选择。




回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马