我不确定为什么我的代码无效:
public int caughtSpeeding(int speed, boolean isBirthday) {
if(isBirthday=true){
speed = speed - 5;
}
if(speed<=60){
return 0;
}
if(speed>=81){
return 2;
}
return 1;
}
问题是:
你驾驶的速度有点太快,一名警察阻止你。编写代码来计算结果,编码为int值:0 =没有票,1 =小票,2 =大票。如果速度为60或更低,则结果为0.如果速度在61和80之间,则结果为1.如果速度为81或更高,则结果为2.除非是您的生日 - 在那一天,您的在所有情况下,速度可以高出5个。
答案 0 :(得分:3)
问题在于:
if (isBirthday = true) {
应该是:
if (isBirthday == true) {
我们使用两个等号进行比较,否则您只需为变量分配true
值,使其始终为真。我们可以更进一步,简化这样的表达式:
if (isBirthday) {
答案 1 :(得分:3)
您在这里使用赋值运算符=,您应该使用==运算符进行比较。所以它应该是
if(isBirthday==true){
speed = speed - 5;
}
答案 2 :(得分:0)
您的代码无效,因为您在此处输入错字:
if(isBirthday=true){
这是将变量设置为true
而不是检查其值
if(isBirthday==true){
正是您要找的
当你写
时,几乎所有语言都会更好if(isBirthday){ for checking if true
if(!isBirthday){ for checking if false
代替