+ 3
Why Inputing "#" in "gets.chomp.to_i" won't crash the code?
I noticed that even if the input of first_num and secone_num had a hash sign(#) in it, the code still runs correctly. Ex: If the input was : 5 #3 * 6 #2 done The output will be: 5*6=30 But if the operator input had a hash sign ex : * #+ it is printed and the code won't execute correctly(even though it shows no Errors). I am confused 🤕 Why it works? Why no error was raised? Why the second try didn't work? And why no error was raised in the second try? https://code.sololearn.com/ciE5vXdom3Eh/?ref=app
2 odpowiedzi
+ 4
The to_i method returns an integer no matter what. Input of '#' would yield a 0, '5#' a 5. It stops looking at the first non-digit and returns whatever it did find.
Your operator string can only be matched to your test string exactly. Anything extra and it fails. Therefore, no math is performed.
+ 2
@John Wells
Thank you, sir.
I get it now