If else not working

I’m getting error like comparison of string with 50 failed
for the below code snippet.Please guide me to resolve

print(’ Enter your mark :’)
mark = gets()
if(mark < 50)
puts( " You passed")
else
puts(" You just scored #{mark} which is not enough to pass ")

end

When you do the mark = get() what you actually get back is a string
and not a number. You cant compare a string to a number so the if(mark
< 50) fails. You need top convert the string into a number. You should
do this

if(mark.to_i < 50)

this will convert the string into an integer (if it can).

Il giorno Sat, 31 Dec 2011 03:58:15 +0900
sathish babu [email protected] ha scritto:

I’m getting error like comparison of string with 50 failed

That’s the problem. In ruby, you can’t compare a string with a number
(you’ll
get an ArgumentError exception). First, you have to convert the string
to a
number, usually using String#to_i or String#to_f.

puts(" You just scored #{mark} which is not enough to pass ")

end

Replace

mark = gets()

with

mark = gets().to_i

and it’ll work.

I hope this helps

Stefano

Peter H. wrote in post #1038899:

When you do the mark = get() what you actually get back is a string
and not a number. You cant compare a string to a number so the if(mark
< 50) fails. You need top convert the string into a number. You should
do this

if(mark.to_i < 50)

this will convert the string into an integer (if it can).

Thanks a lot Mr.Hickman understood the basic casting.

Stefano C. wrote in post #1038900:

Replace

mark = gets()

with

mark = gets().to_i

and it’ll work.

I hope this helps

Stefano

Thanks a lot Crocco…! Understood and great explanation

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs