Давайте посмотрим как реализовать это в блокноте, с помощью языка программирования Python. Наш пример про голодного кота, мы к нему уже написали алгоритм и, на самом деле, мы с вами код уже тоже видели, но давайте напишем его вместе еще раз в режиме реального времени. Алгоритм запишем себе в комментарии, чтобы было удобней, и давайте его переводить в код. Пока кот мяукает — даем коту сосиску, пока это "while", кот мяукает, мы договорились хранить это в переменной "meow", сравниваем равно ли значение переменной "meow" строке "да". Если равно, то выполняем инструкцию в цикле, инструкция в цикле, даем коту сосиску. Мы это просто через "print" сделаем, скажем "print" "даем сосиску". Так как мы должны откуда-то знать равна переменная "meow" строке "да" или не равна, нам нужно это значение переменной получить от пользователя. То есть "meow" — это "input", "input" пользователь нам введет. Когда мы уже дали первую сосиску, нам нужно понять следующую давать или не надо. Снова запрашиваем у пользователя мяукает кот сейчас или нет. Спросим его. Код почти готов, не хватает только пояснений к выводу, давайте пока проверим, что оно в принципе работает. У нас появилось какое-то окошко, мы знаем что нужно ввести сюда "да" или "нет", мяукает кот или нет. Да — даем сосиску, потом напишем допустим сразу нет, одной сосиски ему хватило. Нет, на этом все закончилось, но тут уже наглядно видно, что очень не хватает пояснений к тому, что мы вводим, что мы запрашиваем от пользователя. Потому что, мы то с вами знаем о чем нас спрашивают и сразу начали писать "да", а пользователь может и не знать. Поэтому хорошо бы сюда прописать инструкцию для пользователя, вот у меня уже заранее подготовленная ячейка, где это написано, чтобы сейчас не тратить время на формулировки, а в таком виде уже будет выглядеть гораздо понятнее. Давайте это проверим, запустим. Вот кот мяукает — да или нет. Мы сразу пишем, понимаем, что нас спрашивают, пишем допустим "да", и все еще да, а потом даже, если мы напишем, например, любую абракадабру, все работать закончит, потому что мы не смотрим на самом деле, что пользователь ввел именно "нет", мы в условие смотрим, что пользователь ввел "да". Здесь пробел нам конечно не нужен. Давайте посмотрим, а как это условие видит сам Python? Потому что мы с вами понимаем, что вот оно условие нарушено, больше мы вводим уже не "да", уже что-то другое ввели, условие нарушилось. Как это видит Python? Давайте возьмем и допишем именно то, как это воспринимает Python. Мы это сделаем с помощью "print", с помощью функции "print" посмотрим, как видна вот эта переменная логическая, эта же логическая переменная, она может возвращать, а может перенимать значение "true" или "false". Напечатаем значение логической переменной, действительно ли "meow" и "да" совпадают, действительно ли "meow" равно "да". Сначала до цикла, а потом, так как мы вводим это еще и в цикле, обязательно проверяем то же самое в цикле, можем просто скопировать, а главное сохранить нужный отступ, потому что это уже проверяется в цикле. Запускаем. Вопрос тот же, если мы ответим "да", видите "true". Почему? Потому что действительно "meow" в данном случае совпадает со строкой "да". Если мы напишем "нет" или на самом деле все что угодно, кроме "да", давайте "нет"— не хочет. Напишем подробней, "нет не мяукает", например так, "false". False — это значение нашей логической переменной, которая у нас потом будет проверяться в условии цикла. Как только логическая переменная стала "false" цикл выполняться перестал. Саму переменную "meow", обычно называют такие перемены "флаговыми". Почему? — Это такой флажок, который поднимается в случае, если пользователь ввел что-то отличное от "да", в данном случае, то есть пока пользователь вводит "да" — флажок лежит (давайте мы еще раз это запустим, чтобы посмотреть). Допустим, пользователь вводит "да" — флаг лежит, еще раз, все еще лежит, а потом пользователь вводит что-то другое, допустим "нет", и флажок поднимается. Этот флажок как флаговая переменная показывает, что циклу пора остановиться.