~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 68B3E5B869A5D2E8230E65A44825CDEC__1713346980 ✰
Заголовок документа оригинал.:
✰ Do while loop - Wikipedia ✰
Заголовок документа перевод.:
✰ Выполнить цикл while — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Do_while_loop ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/68/ec/68b3e5b869a5d2e8230e65a44825cdec.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/68/ec/68b3e5b869a5d2e8230e65a44825cdec__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 13:23:01 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 17 April 2024, at 12:43 (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: далее начало оригинального документа

Выполнить цикл while — Википедия Jump to content

Сделать цикл while

Из Википедии, бесплатной энциклопедии
Блок-схема цикла Do While

Во многих программирования языках цикл do while — это потока управления оператор , который выполняет блок кода, а затем либо повторяет блок, либо выходит из цикла в зависимости от заданного логического условия.

Конструкция do while состоит из символа процесса и условия. Сначала выполняется код внутри блока. Затем оценивается состояние. Если условие истинно, код внутри блока выполняется снова. Это повторяется до тех пор, пока условие не станет ложным .

Циклы while проверяют условие после выполнения блока кода. Эту структуру управления можно назвать циклом после тестирования . Это означает, что цикл do- while является циклом условия выхода. Однако цикл while проверит условие перед выполнением кода внутри блока.

Это означает, что сначала всегда выполняется код, а затем оценивается выражение или условие теста. Этот процесс повторяется до тех пор, пока выражение принимает значение true. Если выражение ложно, цикл завершается. Цикл while устанавливает истинность утверждения как необходимое условие выполнения кода. Цикл do- while обеспечивает непрерывное выполнение действия до тех пор, пока условие не перестанет быть истинным.

Возможно, а иногда и желательно, чтобы условие всегда считалось истинным. Это создает бесконечный цикл . Когда бесконечный цикл создается намеренно, обычно существует другая структура управления, которая позволяет завершить цикл. Например, оператор Break позволит завершить бесконечный цикл.

В некоторых языках для этого типа цикла может использоваться другое соглашение об именах. Например, в языках Pascal и Lua есть цикл « повторение до тех пор », который продолжает выполняться до тех пор, пока управляющее выражение не станет истинным, а затем завершается. Напротив, цикл while выполняется , пока управляющее выражение истинно, и завершается, когда выражение становится ложным.

Эквивалентные конструкции [ править ]

делать   { 
     do_work  (); 
  }   Пока   (  условие  ); 

эквивалентно

Выполнять работу  (); 

  while   (  условие  )   { 
     do_work  (); 
  } 

Таким образом, цикл do... while сохраняет первоначальную «загрузку цикла» с помощью do_work(); на линии перед while петля.

Пока оператор continue не используется, приведенное выше технически эквивалентно следующему (хотя эти примеры не являются типичными или современными, используемыми в повседневных компьютерах):

в то время как   (  истина  )   { 
    do_work  (); 
     если   (  !  условие  )   нарушается  ; 
  } 

или

LOOPSTART  : 
     do_work  (); 
      если   (  условие  )   перейти к   LOOPSTART  ; 

Демонстрация циклов do while [ править ]

Эти примеры программ вычисляют факториал 5, используя синтаксис соответствующего языка для цикла do- while.

Есть [ править ]

с   Ada.Integer_Text_IO  ; 

  процедура   Факториал   - 
     Counter     :   Integer   :=   5  ; 
      Факториал   :   Целое число   :=   1  ; 
  начать 
     цикл 
         Факториал   :=   Факториал   *   Счетчик  ; 
          Счетчик     :=   Счетчик   -   1  ; 
          выйти   , когда   Counter   =   0  ; 
      конец   цикла  ; 

      Ада  .   Целое_Текст_IO  .   Положить   (  Факториал  ); 
  конец   Факториала  ; 

БАЗОВЫЙ [ править ]

Ранние BASIC (такие как GW-BASIC ) использовали синтаксис WHILE/WEND. Современные BASIC, такие как PowerBASIC, предоставляют структуры WHILE/WEND и DO/LOOP с таким синтаксисом, как DO WHILE/LOOP, DO UNTIL/LOOP, DO/LOOP WHILE, DO/LOOP UNTIL и DO/LOOP (без внешнего тестирования, но с условным EXIT LOOP где-то внутри цикла). Типичный исходный код BASIC:

Dim   Factorial   As   Integer 
 Dim   counter   As   Integer 

 Factorial   =   1 
 counter   =   5 

 Do 
     Factorial   =   Factorial   *   Counter 
     Counter   =   Counter   -   1 
 Цикл   While   counter   >   0 

 Вывести   факториал 

C, C++, D [ править ]

интервал   счетчика   =   5  ; 
  int   факториал   =   1  ; 

  do   { 
     факториал   *=   счетчик  --  ;    /* Умножаем, затем уменьшаем.   */ 
 }   while   (  счетчик   >   0  ); 

  printf  (  "факториал 5 равен %d  \n  "  ,   факториал  ); 

Операторы Do- while(0) также часто используются в макросах C как способ обернуть несколько операторов в обычный (в отличие от составного) оператор. После макроса ставится точка с запятой, что обеспечивает более функциональный внешний вид для простых парсеров и программистов, а также позволяет избежать проблемы с областью действия с if. Это рекомендуется стандартом кодирования CERT C по правилу PRE10-C. [1]

Фортран [ править ]

В устаревшем Fortran 77 нет конструкции DO-WHILE, но того же эффекта можно достичь с помощью GOTO:

      INTEGER  CNT  ,  FACT 
       CNT  =  5 
       FACT  =  1 
     1   ПРОДОЛЖИТЬ 
       FACT  =  FACT  *  CNT 
       CNT  =  CNT  -  1 
       ЕСЛИ   (  CNT  .  GT  .  0  )   ПЕРЕЙТИ К   1 
       ПЕЧАТЬ  *  ,  FACT 
       END 

В Фортране 90 и более поздних версиях также нет конструкции do- while, но есть конструкция цикла while , которая использует ключевые слова «do while» и, таким образом, фактически аналогична циклу for . [2]

программа  FactorialProg 
     целое   ::   счетчик   =   5 
     целое число   ::   факториал   =   1 

     факториал   =   факториал   *   счетчик 
     счетчик   =   счетчик   -   1 

     do while   (  счетчик   >   0  )   !   Значение истинности проверяется перед циклом 
         факториал   =   факториал   *   счетчик 
         счетчик   =   счетчик   -   1 
     конец do 

 print   *  ,   факториал 
 конец программы  FactorialProg 

Ява [ править ]

интервал   счетчика   =   5  ; 
  int   факториал   =   1  ; 

  do   { 
     факториал   *=   счетчик  --  ;    /* Умножаем, затем уменьшаем.   */ 
 }   while   (  счетчик   >   0  ); 

  Система  .   вне  .   println  (  "Факториал 5 равен"   +   факториал  ); 

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

Паскаль использует синтаксис повторения/пока вместо выполнения while.

факториал   :=   1  ; 
  счетчик   :=   5  ; 
  повторить 
    факториал   :=   факториал   *   счетчик  ; 
     счетчик   :=   счетчик   -   1  ;    // В Object Pascal можно использовать dec (счетчик); 
  пока   счетчик   =   0  ; 

ПЛ/И [ править ]

Оператор PL/I DO включает в себя функции цикла после тестирования ( do Until ), цикла перед тестированием ( do while ) и цикла for . Все функции могут быть включены в один оператор. В примере показан только синтаксис «делать до».

объявить   счетчика     фиксированную   начальную величину  (  5  )  ; 
  объявить   факториал   фиксированным   начальным значением  (  1  )  ; 

  делать   до тех пор, пока  (  счетчик   <=   0  )  ; 
      факториал   =   факториал   *   счетчик  ; 
      счетчик   =   счетчик   -   1  ; 
  конец  ; 

  положить  (  факториал  )  ; 

Ракетка [ править ]

В Racket, как и в других реализациях Scheme , «named-let» является популярным способом реализации циклов:

#lang  Racket 
 (  определить   счетчик   5  ) 
 (  определить   факториал   1  ) 
 (  let   цикл   () 
     (  set!   факториал   (  *   факториал   счетчик  )) 
     (  установить!   счетчик   (  sub1   счетчик  )) 
     (  когда   (  >   счетчик   0  )   (  цикл  ))) 
 (  displayln   факториал  ) 

Сравните это с первым примером цикла while для Racket. Имейте в виду, что именованный оператор let также может принимать аргументы.

Racket и Scheme также обеспечивают правильный цикл выполнения.

(  define   (  факториал   n  ) 
     (  do   ((  счетчик   n   (  -   счетчик   1  )) 
         (  результат   1   (  *   результата   счетчик  ))) 
     ((  =   счетчик   0  )   результат  )   ; Условие остановки и возвращаемое значение. 
     ; Тело do- цикл пустой 
     )) 

Смолток [ править ]

|   счетчик факториал  | 
  счетчик   :=   5  . 
  факториал   :=   1  . 

  [  счетчик   >   0  ]  покаTrue: 
      [  факториал   :=   факториал   *   счетчик  . 
      счетчик   :=   счетчик   -   1  ]  . 

  Расшифровка   показа:   факториал   printString 

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

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

  1. ^ «Многострочный макрос C: do/ while(0) против блока области действия» . Переполнение стека .
  2. ^ «Майкрософт визуал бейсик» . msdn.microsoft.com . Проверено 21 января 2016 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 68B3E5B869A5D2E8230E65A44825CDEC__1713346980
URL1:https://en.wikipedia.org/wiki/Do_while_loop
Заголовок, (Title) документа по адресу, URL1:
Do while loop - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)