# Golf code. Cant find the mistake

So, i did my Golf code like displayed below, and i can’t understand why is it wrong. I was wondering if it was something with the vars ‘x’ and ‘y’, but since the “Hole in one!” works perfectly, i cant figure out whats the problem with the other situations.
Appreciate any help, and really sorry if its something stupid.

``````
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line
var x = par;
var y = strokes;
if (y=1){
return names[0];
} else if (y<=(x-2)){
return names[1];
} else if (y=(x-1)){
return names[2];
} else if (y=x){
return names[3]
} else if (y=(x+1)){
return names[4];
} else if (y=(x+2)){
return names[5];
} else if (y>=(x+3)){
return names[6];
} else{
return "Change Me";
}
// Only change code above this line
}

golfScore(5, 4);
``````

Challenge: Golf Code

So the problem here is that you are using single `=` instead of using triple `===`.
Single `=` is only for assigning a variable
Double `==` is comparing for loose comparison
Triple `===` is for strict comparison
So use `===` instead of single `=`
It is fine to only use single if you want to compare if one is bigger than the other like `<=` or `>=`
If you want more info, me and other people have explained it here

Why can't i use the = instead of == operator in this function?

1 Like

You’ve got two things going on here

1. You have instances where you are using `y=(....)`. Single equals is assignment (i.e. make `y` contain the value of your expression). You need to use comparison `==`.
2. Your final `else if` really should just be an `else`.

A question - why did you change to `y` and `x` when `strokes` and `par` are much more descriptive and readable?

2 Likes

Oh, sure!! 100% inattention! Really appreciate the help @Catalactics!

1 Like

Thank you very much @JeremyLT!! It really was a dumb mistake. For your question, tbh i just wanted to make it a bit quicker by typing less characters in each “if”. But i definitely get your point! Really appreciate your help man!

2 Likes

By quicker do you mean quicker to type? The computer doesn’t really care how long your variable name are : ) (well, unless they are so long they don’t fit on your harddrive :D)

Also, we’ve all mixed up `=` and `==`. Now you’ll remember it better next time : )

2 Likes

Yes, just to type. It was a lazy move that i will stop doing right now, so i dont get bad habits.

Thank you man! You’re right, i wont make the same mistake next time! Appreciate. Peace

1 Like