javajava if中的returnn问题

java递归问题,走完if的return还走else的return
&各位为什么这块代码递归走完if的return还走else的return? 看图
哈哈。骚年,干活仔细点吧。
--- 共有 3 条评论 ---
: TMD,TMD,TMD,TMD。。。。。。。。那么喜欢多给你几个TMD
: TMD,你想搭讪吗
你的头像好吓人啊
哈哈。骚年,干活仔细点吧
擦,递归查询数据库,你牛!
--- 共有 1 条评论 ---
哥,俺知道递归数据库不好
最后一个是return if,然后上一层就是else了一直到最开始的else
&比循环查询数据库还流弊,是厉害啊,
--- 共有 1 条评论 ---
汗!我肯定知道递归数据库不好,只是奇怪为什么会那样走
这个Cat 对象第一次Cat itemCat = new Cat(); 这行是要干啥????
--- 共有 1 条评论 ---
仔细看看吧,if 和else 应该是在不同递归调用里面的。递归查询这个确实不太好,如过数据库中无法使用递归查询,是否可以使用存储过程或提前解析好层次关系?
--- 共有 1 条评论 ---
嗯嗯,谢谢!
这是要整死搞数据库的么?
--- 共有 1 条评论 ---JAVA中的递归调用问题下面代码中的return num+sum(num-1);
是什么意思?求详细解析~
本回答由提问者推荐这两天学到了异常机制,其中try...catch...finally个人觉得算是重要的一环,联系到之前学的语句,遇到了return和finally这个好玩的问题,经过试验,发现计算机语言这种逻辑关系果然微妙,以下是自己的见解,若有不对之处,望各位前辈指点:
首先看第一段代码
1 public class return_finally{
public static void main(String[] args){
System.out.println( m_1() );
public static int m_1(){
System.out.println( "start" );
return i+=10;
}catch(Exception e){
System.out.println( "error: "+e );
System.out.println( i );
System.out.println( "finally" );
20 }第一段代码输出结果如下:    start    20    finally    20注意,此时第二个return是在finally语句外部,按照return与finally同时出现的规定,我们可以理解为第一个return只是一个条件,他的作用只是寻找finally语句,实际只是执行了一个i+=10的运算,然后直接进入finally语句,最后return返还结果。我们再看第二段代码:
1 public class return_finally{
public static void main(String[] args){
System.out.println( m_1() );
public static int m_1(){
System.out.println( "start" );
return i+=10;
}catch(Exception e){
System.out.println( "error: "+e );
System.out.println( i );
System.out.println( "finally" );
return 50;
第二段代码与第一段的区别只是将最后的return放到了finally语句当中,我们可以猜猜输出的结果:
    start
    20
    finally
    50
此时执行的return已经将之前运算结果所得的20覆盖,并且返还了50这个数值,也就是说在finally语句中的return是执行了,呃,应该可以这样说吧~~
还有第三段代码,大家慢慢享受:
public class return_finally{
public static void main(String[] args){
System.out.println( m_1() );
public static int m_1(){
System.out.println( "start" );
}catch(Exception e){
System.out.println( "error: "+e );
System.out.println( i );
System.out.println( "finally" );
此时finally语句中多了i=50,那么结果是什么呢?
    start
    finally
    10
这就是结果,finally语句中没有return语句,那么原来的返回值就不会变化。
那么通过这三个例子可不可以这样理解:
  碰到try语句中的return,先把值储存到一个地方,然后寻找finally语句,如果语句中有新的算法,就从那个空间取出这个值进行运算,finally中有return的话就就把&新值&覆盖那个空间的&旧值&,并最终返回;如果finally中没有return就直接将那个空间中的&旧值&取出来然后返还回去。
  以上纯属理解,希望大家多多指点,谢谢各位的帮助!
阅读(...) 评论()如何解决java中return语句的问题,新手求教_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:645,907贴子:
如何解决java中return语句的问题,新手求教收藏
如题,在方法中使用return语句后,在测试类中使用方法时会导致方法重复一次,但是又必须获取方法返回值来运算,请问return语句有这种功能吗?好困惑,求大神,谢谢!
兄弟连java学员可0元入学,java培训先就业后付款,java项目经理24小时全程辅导.拒绝java视频授课,毕业直进java雇主企业,力荐java就业!轻松胜任java开发各项工作.
大神快来啊!
昨天夜里对着电脑敲到两点,一直没解决这个问题,希望大神快来帮我
登录百度帐号推荐应用在Java中,return null 是否安全, 为什么? - 知乎301被浏览11519分享邀请回答
* Checks that the specified object reference is not {@code null}. This
* method is designed primarily for doing parameter validation in methods
* and constructors, as demonstrated below:
* &blockquote&&pre&
* public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
* &/pre&&/blockquote&
* @param obj the object reference to check for nullity
* @param &T& the type of the reference
* @return {@code obj} if not {@code null}
* @throws NullPointerException if {@code obj} is {@code null}
public static &T& T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
自己主动throw new NullPointerException()这种情况JVM管不着,用户代码主动指定的,用户想怎么搞就怎么搞。趣味题:在Java语言里,只使用Java语言及标准库的功能而不依赖第三方库,检查一个引用obj是否为null并在null时抛NPE的代码是什么?答案:obj.getClass()。这是因为getClass()是java.lang.Object类上的方法,因而无论什么引用类型都可以使用。这在Java源码层面和在Java字节码层面上都是最短的。&- 当然这是个很邪恶的歪招,然而在OpenJDK的标准库内部实现中并不少见。大家…还是用Objects.requireNonNull()就好了 =_=||||P.S. 技术问题请不要依赖百度百科 &_&40545 条评论分享收藏感谢收起

我要回帖

更多关于 java中return的使用 的文章

 

随机推荐