Я изучаю Руби через книгу Криса Пайна «Учись программировать».В книге есть упражнение, которое гласит:
Написать программу «Глухая бабушка».Что бы вы ни сказали бабушке (что бы вы ни печатали), она должна ответить ХАУ ?!ГОВОРИТ, СОННИ !, если только ты не кричишь (набирай все прописные).Если вы кричите, она слышит вас (или, по крайней мере, она так думает) и кричит в ответ, НЕТ, НЕ С 1938 ГОДА!Чтобы ваша программа была правдоподобной, каждый раз, когда бабушка кричит по-разному;может быть, любой случайный год между 1930 и 1950 годами. (Эта часть не обязательна, и будет намного проще, если вы прочитаете раздел о генераторе случайных чисел Руби в конце главы, посвященной методам.) Вы не можете перестать разговаривать с бабушкой, пока некричать до свидания.Подсказка: не забывайте про chomp!«BYE» с «Enter» - это не то же самое, что «BYE» без одного!Подсказка 2: Попробуйте подумать о том, какие части вашей программы должны происходить снова и снова.Все это должно быть в вашем цикле while.
Я написал свой код, и он не работает должным образом.В основном, когда я вводю информацию, она следует порядку, в котором был написан код.Например, если я введу «HELLO», он ответит «HUH ?! ГОВОРИТЬ, СОННИ! Но на самом деле он должен написать« НЕТ, НЕ С 1938 ГОДА! ».появится, если я не буду следовать порядку, в котором был написан код (надеюсь, это имеет смысл).
Я пробовал много вещей, например, не использовал разрыв (для цикла).попытался написать его как один длинный кусок кода без каких-либо ifs или else.
Вот код, который я написал:
puts 'Go speak to Grandma, she\'s in the kitchen!'
speaking = gets.chomp
if speaking == speaking.downcase
puts 'HUH?! SPEAK UP, SONNY!'
gets.chomp
while speaking == 'BYE'
puts 'BYE! COME AGAIN SOON!'
gets.chomp
break
end
else speaking == speaking.upcase
puts 'NO, NOT SINCE 1983!'
gets.chomp
end
Я ожидаю, когда я напишу HELLO, чтобы получить соответствующий ответ«НЕТ, НЕ С 1983 ГОДА!». Кроме того, я ожидаю, что разговор будет продолжен, потому что я использовал gets.chomp для всех частей кода. Sp, почему код останавливается?