gpt4 book ai didi

java - 无法到达的 If 语句

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

在发帖之前,我试图搜索与此类似的答案,所以请对我宽容一些。我只使用 Java 大约一个半星期。在下面的代码块中,我收到一个关于第 20 行无法访问的 if 语句的错误,以及关于第 30 行缺少 return 语句的错误。我相信我可以将其设置为 return(0);对于最后一个错误,但对于第一个问题,我似乎无法弄清楚。

class Droid {

int batteryLevel = 100; //created instance variable, batteryLevel
int hours; //created instance var, hours. val not set yet

public void activate() { //created activate method, string type return

System.out.println("Activated. Hello human. How can I help you?");
batteryLevel = batteryLevel - 5; //Set batteryLevel to decrease by 5
System.out.println("Battery level is " + batteryLevel + " percent.");
}

public int chargeBattery(){ //creat int method chargeBattery


System.out.println("Droid charging...");
batteryLevel = batteryLevel + hours; //setting up recharge for droid
return(0); //return 0 or return nothing?

if (batteryLevel > 100) { //If battery level is greater than 100
batteryLevel = 100; //battery level is 100
System.out.println("Your battery level is at " + batteryLevel + " percent");
return(0); //return 0 or return nothing?
}

else { //else, print out battery level
System.out.println("Your battery level is at " + batteryLevel + " percent");
}
}





public static void main(String [] args) { // Main method
}
}

最佳答案

“问题”是您在 if 语句之前返回。

return (0);
if (whatever)
doSomething;

“return (0)”做了两件事:它立即结束当前函数的执行并“返回”执行调用您函数的函数;它还将“0”传递回函数的调用。因此,您总是在到达 if 语句之前结束函数的执行。

我认为您想设置“返回值”然后继续执行。这是比较常见的。创建一个名为“retVal”或其他变量的新变量,并将其设置为零。然后当你的函数执行完毕时:

return(retVal);

但您似乎也没有非常明智地使用返回值。你似乎只返回“0”。函数的真正“输出”是日志记录。看起来你实际上并没有返回有用的数据,所以让你的函数“void”:

public void chargeBattery(){

由于该函数不期望返回值,因此您根本不需要“返回”语句。当您读取函数的末尾时,它只会将代码的执行返回到调用函数的位置。如果你想“提前”结束执行,那么只需使用:

return;

关于java - 无法到达的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129824/

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