Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial
Leonardo Escalante
3,190 PointsUse of elsif operator
Please help me with this code, I have revised it but it doesn work:
def check_speed(car_speed)
print "Enter car speed "
carspeed = gets.chomp.to_i
if (car_speed >= 40) && (carspeed <= 50)
puts "safe"
elsif
puts "unsafe"
end
Thanks for your help!
def check_speed(car_speed)
print "Enter car speed "
carspeed = gets.chomp.to_i
if (car_speed >= 40) && (carspeed <= 50)
puts "safe"
elsif
puts "unsafe"
end
2 Answers
Steve Hunter
57,712 PointsHi Leonardo,
You're pretty much there with that - just a couple of points.
Firstly, you don't need to get user input with gets as the value is passed in as an argument. Second; your second test of car_speed has missed the underscore; correct that. Next, the strings need to be returned, not output, so change puts to return (or just leave it out). Lastly, you're missing an end and you don't need an elsif as there's no second conditional test; just use else.
You end up with:
def check_speed(car_speed)
if car_speed >= 40 && car_speed <= 50
return "safe"
else
return "unsafe"
end
end
I hope that helps.
Steve.
Jason Anders
Treehouse Moderator 145,862 PointsHey Leonardo,
For the most part, the code is correct, but you are adding way more than what the challenge is asking for. Also, there are a couple syntax errors.
First, the challenge doesn't ask for you to "prompt" for a speed or create a variable for it, so those lines need to be deleted. Second, the challenge wants you to return the strings, and you are using puts.
For the syntax errors, the first one is you are using elsif (which is just misused rather than syntax error). The challenge needs you to use else. Second, there is a missing end to close out the function.
Once corrected:
def check_speed(car_speed)
if(car_speed >= 40) && (car_speed <= 50)
return "safe"
else
return "unsafe"
end
end
Don't forget with challenges, they are often very strict and very picky. If you add code not asked for, delete code that was pre-loaded, or use the wrong word, etc, the challenge (most times) returns "Bummer".
Hope this helps and makes sense. Keep Coding! :)
Jason Anders
Treehouse Moderator 145,862 PointsEdit: I originally stated elsif was misspelled, but I was thinking of Python syntax (elif). The above answer has been corrected to no longer state this.
Steve Hunter
57,712 PointsHaha! Two pretty much identical answers! You got there first, though!! :-)
Jason Anders
Treehouse Moderator 145,862 PointsJason Anders
Treehouse Moderator 145,862 PointsGood answer... sounds familiar... Lol.