不确定为什么代码不起作用

时间:2016-06-11 19:07:06

标签: java

我不确定为什么我的代码无效:

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 个答案:

答案 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 

代替