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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邵新瑜 中级黑马   /  2012-12-3 18:25  /  1792 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  首先要感谢各位群友对我的帮助。
  在JAVA中定义一个方法,必须要return一个返回值,那么是不是只要一个方法里有一个return就可以了呢?下面以我遇到的问题为例说明:

先看下我在JAVA中的代码截图:


再看看我在C语言中的代码:


两者代码基本完全相同,但是在JAVA中编译不通过,在C语言中编译可以通过,因此个人认为:
在JAVA编译的时候是直接扫描定义带有返回值的函数中是否一定会有返回值,当扫描到if时,它并未对其进行运算,而是解释为不能运行(实际上在if后面加个else,并且在else后面添加一个return,编译还是不能通过),这就是与C语言不同的地方。
因此在JAVA定义方法时,最好是避免在if...else这样的选择语句中直接return返回值,而是定义一个在该函数内变量传递,并且在所有语句的最后使用return这个变量就行了。

而以上区别说的是在定义有返回值的函数中,在定义没有返回值的函数时,在JAVA中将return语句放在if...else语句中是没有问题的。但是也要尽量避免,因为这对于良好的代码习惯很有帮助。

不知道以上说的对不对,请多指正!


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

2 个回复

倒序浏览
何伟 来自手机 中级黑马 2012-12-3 18:38:35
沙发
沙发!方法定义了返回值类型,方法内就必须有return,
回复 使用道具 举报
这应该取决去java和c++在编译机制上的不同吧?有啥不同呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马