Как мы уже видели, циклы и итераторы позволяют нам делать одно и то же (выполнять тот же самый код) снова и снова. Однако, иногда мы хотим сделать одно и то же несколько раз, но в разных частях программы. Например, мы бы разрабатывали, скажем, программу опроса для студента-психолога. Судя по разговорам со знакомыми студентами-психологами и по опросам, которые они мне предлагали, она, наверное, должна быть примерно такой:

puts 'Здравствуйте! И спасибо, что Вы нашли время, чтобы'

puts 'помочь мне в этом исследовании. Мое исследование'

puts 'связано с изучением того, как люди относятся к'

puts 'мексиканской еде. Просто думайте о мексиканской еде'

puts 'и попробуйте отвечать на все вопросы честно,'

puts 'только словами «да» или «нет». Моё исследование'

puts 'не имеет ничего общего с ночным недержанием мочи.' puts

# Мы задаём эти вопросы, но игнорируем ответы на них. goodAnswer = false while (not goodAnswer)

puts 'Вам нравится есть такос?' answer = gets.chomp.downcase if (answer == 'да' or answer == 'нет') goodAnswer = true else

puts 'Пожалуйста, отвечайте «да» или «нет».' end end

goodAnswer = false while (not goodAnswer)

puts 'Вам нравится есть бурритос?' answer = gets.chomp.downcase if (answer == 'да' or answer == 'нет')

goodAnswer = true

else

puts 'Пожалуйста, отвечайте «да» или

«нет».'

end

end

# Мы, однако, обращаем внимание на *этот

* вопрос.

goodAnswer = false

while (not goodAnswer)

puts 'Вы мочитесь в постель?'

answer = gets.chomp.downcase

if (answer == 'да' or answer == 'нет')

goodAnswer = true

if answer == 'да'

wetsBed = true

else

wetsBed = false

end

else

puts 'Пожалуйста, отвечайте «да» или

«нет».'

end

end

goodAnswer = false

while (not goodAnswer)

puts 'Вам нравится есть чимичангас?'

answer = gets.chomp.downcase

if (answer == 'да' or answer == 'нет')

goodAnswer = true

else

puts 'Пожалуйста, отвечайте «да» или

«нет».'

end

end

puts 'И ещё несколько вопросов…'

goodAnswer = false while (not goodAnswer)

puts 'Вам нравится есть сопапиллас?' answer = gets.chomp.downcase if (answer == 'да' or answer == 'нет') goodAnswer = true else

puts 'Пожалуйста, отвечайте «да» или «нет».' end end

# Задайте много других вопросов о мексиканской еде. puts

puts 'ПОЯСНЕНИЕ:'

puts 'Спасибо за то, что Вы нашли время, чтобы помочь'

puts 'этому исследованию. На самом деле, это исследование'

puts 'не имеет ничего общего с мексиканской едой. Это'

puts 'исследование ночного недержания мочи. Мексиканская еда'

puts 'присутствовала только затем, чтобы усыпить Вашу бдительность'

puts 'в надежде, что Вы будете отвечать более'

puts 'правдиво. Ещё раз спасибо.'

puts

puts wetsBed

Здравствуйте! И спасибо, что Вы нашли время, чтобы помочь мне в этом исследовании. Моё исследование связано с изучением того, как люди относятся к мексиканской еде. Просто думайте о мексиканской еде и попробуйте отвечать на все вопросы честно, только словами «да» или «нет». Моё исследование не имеет ничего общего с ночным недержанием мочи.

Вам нравится есть такос? да

Перейти на страницу:

Похожие книги