2016-06-11 125 views
-4

我不确定为什么我的代码不工作:不确定为什么代码不能正常工作

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。

回答

3

这里的问题:

if (isBirthday = true) { 

它应该是:

if (isBirthday == true) { 

我们使用2个等号进行比较,否则你只是分配一个true值的变量,使得它总是如此。我们可以更进一步,简化这样的表达:

if (isBirthday) { 
3

您正在使用的赋值运算符=在这里,您应该使用==操作符进行比较。所以它应该是

if(isBirthday==true){ 
    speed = speed - 5; 
    } 
+0

D'oh谢谢! –

0

您的代码不工作,因为你在这里有一个错字:

if(isBirthday=true){ 

这是变量设置为true,而不是检查它的价值

if(isBirthday==true){是你正在寻找

并且几乎在所有语言中写得都比较好

if(isBirthday){ for checking if true 
if(!isBirthday){ for checking if false 

改为