<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>case</title> </head> <body> <h1>case</h1> <p> Команда <strong>case</strong> исполняет один из нескольких скриптов в зависимости от полученного значения. </p> <pre> <strong>case</strong> <em>string</em> ?<em>in</em>? <em>patList</em> <em>body</em> ?<em>patList</em> <em>body</em>...? <strong>case</strong> <em>string</em> ?<em>in</em>? {<em>patList</em> <em>body</em> ?<em>patList</em> <em>body</em>...?} </pre> <h2>ОПИСАНИЕ</h2> <p> Замечание. Команда case - устаревшая, она поддерживается только для совместимости с предыдущими версиями. В последующих версиях она может быть опущена. Поэтому предпочтительнее использование команды <a href="switch.html"><strong>switch</strong></a>. </p> <p>Команда сравнивает <em>string</em> со всеми аргументами <em>patList</em> по очереди. Каждый аргумент <em>patList</em> представляет собой один или несколько (список) образцов. Если <em>string</em> соответствует одному из образцов, то <strong>case</strong> рекурсивно вызывает интерпретатор Tcl, передает ему следующий за этим списком образцов скрипт <em>body</em> для выполнения и возвращает результат этого выполнения. Каждый аргумент <em>patList</em> состоит из одного или нескольких образцов. Каждый образец может содержать спецсимволы, как в команде <a href="string.html#match"><strong>string match</strong></a>. Кроме того, есть специальный образец <strong>default</strong>. Соответствующий ему скрипт выполняется, если <em>string</em> не соответствует никакому другому образцу.</p> <p>Если <em>string</em> не соответствует ни одному из образцов, а образец <strong>default</strong> не используется, то <strong>case</strong> вернет пустую строку.</p> <p>У команды есть две формы записи для аргументов <em>patList</em> и <em>body</em>. Первая использует отдельные аргументы для каждого шаблона и команды. Эта форма более удобна, если в образцах или командах желательно выполнить какие-либо подстановки. Во второй форме все шаблоны и команды объединены в один аргумент, который должен быть списком, состоящим из шаблонов и команд. Вторая форма позволяет проще записывать многострочные команды, поскольку при этом фигурные скобки вокруг списка позволяют не ставить обратный слэш в конце каждой строки. Однако из-за этих фигурных скобок подстановки в шаблонах и командах не производятся. Поэтому одна и та же команда, записанная в различных формах, может работать по-разному. <//p> </body> </html>