~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 048BB0F5FF6242FC7B3986DACB7765A8__1715617560 ✰
Заголовок документа оригинал.:
✰ Label (computer science) - Wikipedia ✰
Заголовок документа перевод.:
✰ Этикетка (информатика) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Label_(computer_science) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/04/a8/048bb0f5ff6242fc7b3986dacb7765a8.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/04/a8/048bb0f5ff6242fc7b3986dacb7765a8__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 13:25:46 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 May 2024, at 19:26 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Этикетка (информатика) — Википедия Jump to content

Этикетка (информатика)

Из Википедии, бесплатной энциклопедии

В языках программирования метка представляет собой последовательность символов, которая идентифицирует местоположение в исходном коде . В большинстве языков метки имеют форму идентификатора , за которым часто следует знак препинания (например, двоеточие ). Во многих языках высокого уровня цель метки — выступать в качестве пункта назначения. GOTO заявление. [1] [2] На языке ассемблера метки могут использоваться везде, где может быть адрес (например, в качестве операнда JMP или MOV инструкция). [3] Также в Паскале и его производных вариациях. Некоторые языки, такие как Fortran и BASIC , поддерживают числовые метки. [4] Метки также используются для идентификации точки входа в скомпилированную последовательность операторов (например, во время отладки ).

С [ править ]

В C метка идентифицирует оператор в коде. Один оператор может иметь несколько меток. Метки просто указывают места в коде, и достижение метки не влияет на фактическое выполнение.

Метки функций [ править ]

Метки функций состоят из идентификатора, за которым следует двоеточие. Каждая такая метка указывает на оператор функции, и ее идентификатор должен быть уникальным внутри этой функции. Другие функции могут использовать то же имя для метки. Идентификаторы меток занимают собственное пространство имен — можно иметь переменные и функции с тем же именем, что и метка.

void   foo  (  int   number  ) 
 { 
     if   (  number   <   0  ) 
         перейти к   ошибке  ; 
      бар  (  номер  ); 
      возвращаться  ; 
  ошибка  : 
     fprintf  (  stderr  ,   «Неверный номер!  \n  »  ); 
  } 

Здесь ошибка — это метка. Оператор goto можно использовать для перехода к помеченному оператору в коде. После goto, выполнение программы продолжается с оператора после метки.

Сменить ярлыки [ править ]

В оператор переключателя можно поместить два типа меток. Метка случая состоит из ключевого слова case, за которым следует выражение, результатом которого является целочисленная константа. Метка по умолчанию состоит из ключевого слова default. Метки регистра используются для связи целочисленного значения с оператором в коде. Когда достигнут оператор переключения, выполнение программы продолжается с оператора после метки случая со значением, которое соответствует значению в круглых скобках переключателя. Если такой метки случая нет, но есть метка по умолчанию, выполнение программы продолжается с оператора, следующего за меткой по умолчанию. Если метка по умолчанию отсутствует, выполнение программы продолжается после переключения.

switch   (  die  ) 
 { 
 default  : 
     printf  (  "invalid  \n  "  ); 
      перерыв  ; 

  случай   1  : 
 случай   3  : 
 случай   5  : 
     printf  (  «нечетный  \n  »  ); 
      перерыв  ; 

  случай   2  : 
 случай   4  : 
 случай   6  : 
     printf  (  «даже  \n  »  ); 
      перерыв  ; 
  } 

В пределах одного оператора переключения целочисленная константа, связанная с каждой меткой варианта, должна быть уникальной. Оператор по умолчанию может быть, а может и не быть. Нет ограничений на порядок меток внутри переключателя. Требование, чтобы значения меток регистра оценивались как целочисленные константы, дает компилятору больше возможностей для оптимизации.

Примеры [ править ]

Javascript [ править ]

операторах языка JavaScript В синтаксических может предшествовать метка:

top  :   //Помечаем самый внешний цикл for. 
  for   (  var   i   =   0  ;   я   <   4  ;   я  ++  )   { 
     for   (  var   j   =   0  ;   j   <   4  ;   j  ++  )   { 
         if   (  j   ===   3   &&   i   ===   2  )   { 
             alert  (  " i="   +   я   +   ", j="   +   j  );    //i=2, j=3 
             прерываем   вершину  ; 
          } 
     } 
 } 

 alert  (  "i="   +   i   +   ", j="   +   j  );    //i=2, j=3 

Также возможно использовать break оператор для выхода из блоков кода:

вверху  :   { 
   консоль  .   log  (  "foo"  ) 
   консоль  .   log  (  "bar"  ) 
   разбить   верхнюю 
   консоль  .   log  (  "baz"  ) 

 } 
 // Что выведет: 
 // > foo 
 // > bar 

Общий Лисп [ править ]

В Common Lisp существует два способа определения меток. Первый из них предполагает tagbodyспециальный оператор. В отличие от многих других языков программирования, допускающих глобальную навигацию, таких как C , метки доступны только в контексте этого оператора. Внутри tagbodyметки определяются как формы, начинающиеся с символа; тот go специальная форма позволяет передавать управление между этими метками. [5]

(  let   ((  итерация   NIL  )) 
   (  tagbody 
     start 
       (  print   'started  ) 
       (  setf    итерация   0  ) 
     увеличение 
       (  печати   итерация  ) 
       (  incf    итерация   1  ) 
       (  go      check  ) 
     check 
       (  if   (  >=   итерация   10  ) 
         (  go   end  ) 
         (  go   увеличить  )) 
     конец 
       (  печатать   готово  ))) 

Второй метод использует макросы считывателя. #n= и #n#, первый из которых помечает объект, следующий сразу за ним, второй относится к его вычисленному значению. [6] Метки в этом смысле представляют собой скорее альтернативу переменным, поскольку #n= объявление и инициализация «переменной» и #n#доступ к нему. Заполнитель n обозначает выбранное десятичное целое число без знака, идентифицирующее метку.

(  программа 
   №1=  "привет" 
   (  напечатайте   #1#  )) 

Кроме того, некоторые формы разрешают или требуют декларирования маркировки для последующего направления, включая специальную форму. block который предписывает именование, и loop макрос, который можно идентифицировать по namedпункт. Немедленный уход от названной формы возможен с помощью return-from специальный оператор.

(  блокировать   myblock 
   (  цикл   для   итерации   от   0   do 
     (  if   (  >=   итерация   10  ) 
       (  return-from   myblock   'done  ) 
       (  печати   итерация  )))) 
(  цикл 
   с именем   myloop 
   для     итерации   от   0 
   do      (  if   (  >=   итерация   10  ) 
           (  return-from   myloop   'done  ) 
           (  печати   итерация  ))) 

Подобно C, макросы case, ccase, ecase, [7] typecase, ctypecase и etypecase определить операторы переключения. [8]

(  let   ((  my-value   5  )) 
   (  case   my-value 
     (  1           (  выведите   «один»  )) 
     (  2           (  выведите   «два»  ) )) 
     ((  3   4   5  )     (  выведите   «три четыре или пять»  ) )) 
     (  в противном случае   (  выведите   «любое другое значение»  )))) 
(  let   ((  my-value   5  )) 
   (  typecase   my-value 
     (  list        (  напечатайте   "список"  )) 
     (  строка      (  напечатайте   " строку"  )) 
     (  число      (  напечатайте   "число"  )) 
     (  иначе   (  напечатайте   " любой другой тип"  )))) 

См. также [ править ]

Ссылки [ править ]

  1. ^ «Стандартный раздел C 6.8.6.1 Оператор goto» . Архивировано из оригинала 24 декабря 2007 г. Проверено 3 июля 2008 г.
  2. ^ «Перейти к оператору QuickSCREEN» . Майкрософт. 1988. Архивировано из оригинала 25 июля 2009 г. Проверено 3 июля 2008 г.
  3. ^ О. Лоулор. «Сборка nasm x86» . Проверено 3 июля 2008 г.
  4. ^ «Различия между GW-BASIC и QBasic» . Архивировано из оригинала 10 февраля 2010 г.
  5. ^ Кент Питман. «CLHS: Специальный оператор ТЭГБОДИ» . Проверено 18 августа 2020 г.
  6. ^ Кент Питман. «CLHS: Раздел 2.4.8» . Проверено 18 августа 2020 г.
  7. ^ Кент Питман. «CLHS: Макрос CASE, CCASE, ECASE» . Проверено 20 августа 2020 г.
  8. ^ Кент Питман. «CLSH: Макрос TYPECASE, CTYPECASE, ETYPECASE» . Проверено 20 августа 2020 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 048BB0F5FF6242FC7B3986DACB7765A8__1715617560
URL1:https://en.wikipedia.org/wiki/Label_(computer_science)
Заголовок, (Title) документа по адресу, URL1:
Label (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)