First Tech Challenge,一个机器人组织现在拥有一个Android平台而不是乐高。我的团队正在转向java,但我有一个简单的问题。如果我有一个具有两个参数power1
和power2
的函数,并且两者都可以设置为double,但如果没有指定第二个参数,它将运行只有{{1}的两个电机变量。这是我的代码:
power1
更新:以下是Android Studio的屏幕截图:
答案 0 :(得分:1)
这里有几个问题:
double
不能是null
,您必须使用java.lang.Double
包装器。 =
是赋值运算符。使用==
运算符完成测试相等性。power1
之后使用power2
和if
,无论其是否被执行。相反,您可能打算使用else
子句:
public void setDriveMotorPower(Double power1, Double power2) {
motorLeft.setPower(power1);
if (power2 == null) {
motorRight.setPower(power1);
} else {
motorRight.setPower(power2);
}
}
答案 1 :(得分:0)
如果一个函数有2个参数,你必须发送它们但是还有另一个想法:如果你不想使用power2
例如你可以传递一些不可能发生的值 - 例如 - 1或根据你的情况做任何事情,然后检查if(power2 == -1)
,这比检查null更好
顺便说一句,方法.setPower()
for将被调用4次,因为您刚使用if
而不是if else
。它应该像
motorLeft.setPower(power1);
if (power2 == null) { // or -1 like I said before
motorRight.setPower(power1);
} else {
motorRight.setPower(power2);
}