Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информат 1.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
510.83 Кб
Скачать

[Править]Совместный цикл

Ещё одним вариантом цикла является цикл, задающий выполнение некоторой операции для объектов из заданного множества, без явного указания порядка перечисления этих объектов. Такие циклы называются совместными (а также циклами по коллекциициклами просмотра) и представляют собой формальную запись инструкции вида: «Выполнить операцию X для всех элементов, входящих во множество M». Совместный цикл, теоретически, никак не определяет, в каком порядке операция будет применяться к элементам множества, хотя конкретные языки программирования, разумеется, могут задавать конкретный порядок перебора элементов. Произвольность даёт возможность оптимизации исполнения цикла за счёт организации доступа не в заданном программистом, а в наиболее выгодном порядке. При наличии возможности параллельного выполнения нескольких операций возможно даже распараллеливание выполнения совместного цикла, когда одна и та же операция одновременно выполняется на разных вычислительных модулях для разных объектов, при том что логически программа остаётся последовательной.

Совместные циклы имеются в некоторых языках программирования (C#EiffelJavaJavaScriptPerlPythonPHPLISPTcl и др.) — они позволяют выполнять цикл по всем элементам заданной коллекции объектов. В определении такого цикла требуется указать только коллекцию объектов и переменную, которой в теле цикла будет присвоено значение обрабатываемого в данный момент объекта (или ссылка на него). В различных языках программирования синтаксис оператора различен:

C++:

for (type &item : set) //поддерживается, начиная со стандарта C++11

{

//использование item

}

C#:

foreach (type item in set)

{

//использование item

}

Delphi:

for item in [1..100] do

begin

//Использование item (Работоспособность кода проверялась в Delphi 2010)

end;

Perl (строгий порядок "от первого до последнего"):

foreach (@set)

{

#использование $_

}

# или

for (@set)

{

#использование $_

}

# или

foreach $item (@set)

{

#использование $item

}

Eiffel:

across set as cursor loop

-- использование cursor.item

end

Java:

for (type item : set)

{

//использование item

}

JavaScript:

for (txtProperty in objObject)

{

/*

использование:

objObject [txtProperty]

*/

}

PHP:

foreach ($arr as $item) {

/* использование $item*/

}

//или

foreach ($arr as $key=>$value) {

/* использование значений индекса $key и его значения $value*/

}

Visual Basic.NET:

For Each item As type In set

'использование item

Next item

Windows PowerShell:

foreach ($item in $set) {

# операции с $item

}

или

$set | ForEach-Object {

# операции с $_

}

Python

for item in iterator_instance:

# использование item

22. Программирование задач с множественным выбором.