У меня один файл с именем Exercises.rb
Дело заявление не работает, как ожидалось
def ask(prompt)
print prompt, ' '
$stdout.flush
s = gets
return s
end
def myreverse(s)
aux=""
for i in 0..s.length-1
aux=s[i] + aux
end
return aux
end
def mywordreverse(s)
aux=[]
s=s.split(" ")
for i in 0..s.length-1
aux.unshift(s[i])
end
return aux.join(" ")
end
def choose(s,option)
case option
when 1 then print myreverse(s)
when 2 then print mywordreverse(s)
when 3 then print "hello"
else print "You gave me #{option} -- I have no idea what to do with that."
end
end
s=ask("Write a string to reverse: ")
option=ask("Choose an option. 1 - Reverse string. 2 - Reverse String words : ")
choose(s,option)
Я всегда получаю You gave MYCHOSENOPTION -- I have no idea what to do with that.
, независимо от того, какой вариант выбрать. Если я поставлю if
непосредственно перед case
, сравнивая 1, он просто не подходит для моих строк.
Привет, Фрогз, я действительно думал, что знаю свой ответ, но я так люблю тебя, что буду придерживаться его. Моя первая проблема заключалась в том, что сравнение 1 === "1" на самом деле ложно. Моя вторая проблема заключалась в том, что chomp, которого не хватало, и мне было тяжело. Я действительно попал туда, проверяя длину моей строки опций. Что касается пунктов 2 и 3, у вас есть острый глаз :-). Я создал их для поддержки процесса собеседования, абстрактного для языка, поэтому я ответил ему на самый низкий уровень/ближе к C.На каждом языке (и мне нравится рубин все больше и больше) будут разные способы решения этой проблемы. – MrWater
Во всяком случае, я узнал из вашего ответа и благодарю вас за это. Приветствия. – MrWater