gpt4 book ai didi

java - Android 中未返回 if 语句返回值

转载 作者:行者123 更新时间:2023-12-01 18:45:13 25 4
gpt4 key购买 nike

显然我在这里遗漏了一些基本的东西。我有一个函数,在该函数的各个 if 语句中都有 return 语句。这样做的好处显然是有争议的,但我遇到了一种我不熟悉的情况。

我通过断点跟踪程序的执行,并注意到它正常执行到 return 语句。但是,在到达该语句后,它会跳过函数的其余部分并转到函数底部的 return 语句并返回那里的值。这是代码 fragment ,有数百行长,所以我不想发布整个内容,只发布我跟踪的部分:

public Location getBestLocation(Context c){ //the header

else if(gps_enabled && passive_enabled && !network_enabled){
if(hGPSLast != null && hPassive != null){
if(hGPSLast.getTime() > hPassive.getTime() && System.currentTimeMillis() - hGPSLast.getTime() < 300000){
return hGPSLast;
}else if(hPassive.getTime() > hGPSLast.getTime() && System.currentTimeMillis() - hPassive.getTime() < 300000){
return hPassive;
}else{
hGPSBest = getGPSloc(c);
if(hGPSBest.getTime() == hGPSLast.getTime()){
if(hPassive.getTime() > hGPSLast.getTime()){
return hPassive;
}else{
return hGPSLast;
}
}else{
return hGPSBest;
}
}
}else if(hGPSLast != null && hPassive == null){
if(System.currentTimeMillis() - hGPSLast.getTime() <300000){
return hGPSLast;
}else{
hGPSBest = getGPSloc(c);
return hGPSBest;
}
}else if(hPassive != null && hGPSLast == null){
if(System.currentTimeMillis() - hPassive.getTime() < 300000){
return hPassive;
}else{
hGPSBest = getGPSloc(c);
if(hGPSBest != null){
return hGPSBest;
}else{
return hPassive;
}
}
}

达到了主体该部分的返回之一,但是代码跳到了最底部,我有这个:

    Criteria criteria = new Criteria();
String best = lm.getBestProvider(criteria, true);
//since you are using true as the second parameter, you will only get the best of providers which are enabled.
def = lm.getLastKnownLocation(best);
return def;

代码返回“def”,我将其定义为空白保持位置对象,如果由于某种原因没有达到正文中的任何返回值,我希望该对象将由其上方的代码填充。我在这里缺少什么?

最佳答案

return 命令立即忽略所有剩余的方法代码并退出其所在的当前方法。它将立即返回到调用该方法本身的前一个函数。

例如:

if(hPassive.getTime() > hGPSLast.getTime()){
return hPassive;
}else{
return hGPSLast;
}

可以重写为

if(hPassive.getTime() > hGPSLast.getTime()){
return hPassive;
}

return hGPSLast;

该方法将始终返回两者中的一个并跳过其余代码。

关于java - Android 中未返回 if 语句返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com