Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Прошу помочь


Автор: s010 27.9.2010, 16:10
Уважаемые... о себе скажу - к программированию не имел отношения никогда, но все таки интересно и вот решил самостоятельно таки освоить... перечитал много материала в интернете и действительно Ruby нахожу наиболее подходящим...
но во вопрос пытался решить задачку из учебника, но что то не выходит и три дня ничего не могу придумать... стою на месте (всего занимаюсь неделю), прошу кто знает объяснить в чем ошибка ? возможно вариант правильного кода... т.к. объяснять мне не кому ) возможно на примере смогу разобраться
собственно задача проста - необходимо выводить любое количество слов на экран до тех пор, пока не будет введен какой то определенный символ (или буква или цифра не важно по сути) с клавиатуры... далее необходимо вывести все слова в алфавитном порядке ( тут я думаю мне поможет sort потому эту часть я пока опустил) .. а вот собственно то ,что у меня получилось ( :

languages = ['b', 'a', 'c']
languages.each do |lang|
  puts 'Qwerty?'
  goodAnswer = false
  while (not goodAnswer)
  puts 'Qwert1 ' + lang
  answer = gets.chomp
  if answer == 'A'
    goodAnswer = true
    puts 'Molodec'
    else
      goodAnswer =false
    end
    end

предпологаю, что ошибка может и не одна... а возможно все не так )) но не судите строго, только начинаю, обязательно исправлюсь)

Модератор: Название темы должно отражать ее суть!

Автор: source777 27.9.2010, 22:45
Цитата(s010 @  27.9.2010,  16:10 Найти цитируемый пост)
предпологаю, что ошибка может и не одна...

ну, для начала, в фрагменте кода, который ты привёл в топике, тупо не хватает одного end в конце.

Цитата(s010 @  27.9.2010,  16:10 Найти цитируемый пост)
а возможно все не так 

всё, не всё, а что-то не так, из-за того что невозможно понять без комментариев смысл твоего кода:
Что за languages? И какой смысл в значениях 'b', 'a', 'c'? Какой смысл в строке "puts 'Qwert1 ' + lang", когда по всей видимости её место должна занять строка с приглашением к вводу "puts 'Qwerty?'"? 
Какую смысловую нагрузку несёт переменная goodAnswer?

В общем, почему не как-нибудь так:
Код

(1..3).each do |i|
  while true
    puts "Round ##{i}. Please, enter a word and press 'Enter' (to stop data input enter 'A')."
    answer = gets.chomp
    if answer == 'A'
      puts 'Well done'
      break
    end
  end
end

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)