Cobra/Keywords/for
For
[править]Чисел
[править]for реализует перебор диапазона целых чисел.
Синтаксис
[править]
for <variable> in [<start>:]<stop>[:<step>]
<statements>
Если <start> не указано, то по умолчанию 0.
Если <step> не указано, то по умолчанию оно равно 1.
Для каждой итерации <variable> получает значение, начиная с <start>, увеличивается на <step> и заканчивается, когда достигнет или превысит значение <stop> (или встретится оператор break).
Внутри блока, break оператор прерывает цикла. if оператор используется для управления, в случае прекращения цикла, либо продолжения (в противном случае было бы бессмысленно иметь дальнейшие инструкции в цикле).
эквивалент loop:
<variable> = start
while <variable> < <stop>
... statements..
<variable> += <step>
где <stop> эквивалентно диапазону счетчика.
Пример
[править]
for i in 1:10
print i # prints values 1,2,3,4,5,6,7,8,9
for i in 1 : 10 # can have spaces around :
print i
for i in 5
print i # prints values 0,1,2,3,4
for i in 7:5:-1
print i # prints values 7,6
for e in 20:31:2
print i # prints even numbers between 20 and 30 inclusive
for f in 7:5
print f # never executed
for i in someList.count
print i # print the list indexes
Последовательности
[править]for для перебора элементов любого объекта, реализующий IEnumerable.
Синтаксис
[править]
for <variable> in <expression>
<statements>
Переменная variable может быть ранее объявленной переменной или ранее не существовавшей. Выражение должно наследовать System.Collections.Generic.IEnumerable<of> или System.Collections.IEnumerable. Наиболее распространенных объектов перечисления являются списки, массивы и переменные аргументы.
Если переменная variable имеет явный тип (foo as Bar), или имеет ранее объявленный тип, то тип должен быть совместим с объектом перечисления. Если нет явного типа, то тип выводится из типа перечисления. Для IEnumerable<of>, это общий тип. Для IEnumerable, вывод типа Object.
В объявлении переменной может быть присвоение.
Внутри объявления, break оператор прерывает текущий цикла пропуская оставшуюся часть цикла. if оператор используется для управления, в случае прекращения цикла, либо продолжения (в противном случае было бы бессмысленно иметь дальнейшие инструкции в цикле).
Пример
[править]
# Example 1
for person in people
print person
# Example 2
i = 1
for person in people
print '[i]. [person]'
i += 1
# Example 3
for line as String in lines
line = line.trim
if line
print line
# Example 4
for node in nodes
if not node.isActive
print 'skipping inactive node: [node]'
continue
print node
node.process
# Example 5
found = false
for cust in customers
if cust.name == name
found = true
break