Видео: Технологии НЛО доступны (фильм полностью). Наука. Физика. Виктор Катющик. 2025
Когда вы попадаете в циклы программирования на языке C, вы обнаруживаете радости и страхи бесконечных или бесконечных циклов . Эти петли продолжаются вечно, потому что либо программист забыл включить способ выхода из цикла, либо условие выхода просто не выполняется. В любом случае, бесконечные петли - это боль.
Но иногда программа C содержит бесконечный цикл. Этот тип конструкции может показаться странным, но основой многих современных программ является то, что они сидят и вращаются, пока они ждут чего-то. Цикл может выглядеть так:
for (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Обратите внимание, что условия внутри круглых скобок после ключевого слова for отсутствуют, что хорошо. Результатом является бесконечный цикл, в котором операторы проверяются несколько раз, один за другим: программа где-то ищет активность. Когда активность обнаружена, программа отключается и делает что-то интересное. Но большую часть времени программа просто сидит в этом типе цикла, ожидая чего-то. (Типичный текстовый процессор может выполнять тысячи этих циклов, поскольку он ждет нажатия клавиш при вводе текста.)
Введите этот исходный код и сохраните его на диск. Затем скомпилируйте и запустите программу:
#include int main () {char ch; puts («Программа ввода»); puts ("Type away:"); for (;;) {ch = getchar ();} return (0);}
Да, вы можете ввести. И вы можете видеть текст на экране. Но как вы остановились?
Чтобы остановиться, вам нужно разбить бесконечный цикл, который можно сделать, нажав Ctrl + C. Но это не так, как вы хотите, чтобы ваши программы работали. Вместо этого условие цикла должно быть определено для цикла, в котором ключевое слово break переходит в игру.
Разработчики языка C знали, что в некоторых случаях цикл должен быть разбит на основе условий, которые нельзя было предсказать или настроить внутри оператора for. Итак, в своей мудрости они представили ключевое слово break.
То, что происходит, это немедленно выйти из цикла (любой цикл C-языка, а не только для циклов). Когда компьютер видит разрыв, он просто предполагает, что цикл выполняется и продолжается, как если бы условие завершения цикла выполнялось:
#include int main () {char ch; puts («Программа ввода»); puts («Напечатайте, нажмите« ~ », чтобы выйти:»); for (;;) {ch = getchar (); if (ch == '~') {break;}} return (0);}
Теперь определено условие выхода. Если сравнение в строке 12 проверяет, введен ли символ ~ (тильда). Если это так, цикл останавливается оператором break.
Измените исходный код так, чтобы он соответствовал тому, что было показано. Скомпилируйте и запустите. Теперь вы можете остановить программу, набрав символ ~.
Обратите внимание, что оператор if также может быть записан без привязок:
if (ch == '~') break;
Эта строка может быть более читаемой, чем использование фигурных скобок.
