# for

ключевое слово для циклов

## Последовательность вызова

                for variable=expression
                instruction;
                instruction;
                ...
                instruction;
                end

                for variable=expression do
                instruction;
                instruction;
                ...
                instruction;
                end

## Аргументы

variable

  переменная, по которой ведётся цикл;

expression

  выражение, описывающее закон изменения переменной `variable` в заданных пределах; может быть вектором, матрицей, списком;

instruction

  любые корректные инструкции Scilab.

do

  ключевое слово, отделяющее блок определения переменной цикла `variable` от блока инструкций `instruction`

## Описание

Используется для организации циклов по заданной переменной `variable`. Изменение переменной цикла `variable` описывается выражением `expression`, однако, в качестве `expression` может выступать вектор или матрица. В этом случае переменная `variable` последовательно от итерации к итерации принимает значения элементов вектора/матрицы от первого до последнего, столбец за столбцом.

Оператор двоеточие colon используется для создания вектор-столбцов с регулярным шагом между элементами и похож на традиционные циклы `for`:

                    for variable=n1:step:n2
                    instruction;
                    ...
                    instruction;
                    end

Если `expression` является списком, то `variable` принимает значения списка одно за другим.

В соответствии с договорённостями по написанию кода в Scilab рекомендуется:

- начинать новую инструкцию на новой строке;

- писать не более одной простой инструкции на одной строке;

- разбивать составные инструкции на множество строк.

Например, используйте:

          for i = 1:5
    	disp(i);
          end

а не:

          for i = 1:5 disp(i); end

Предупреждение: число символов, используемых для определения тела любой инструкции условия (`if while for` или `select/case`) должно быть ограничено 16К.

## Примеры

    // "традиционный" для циклов
    n=5;
    for i = 1:n
        for j = 1:n
            a(i,j) = 1/(i+j-1);
        end;
    end
    for j = 2:n-1
        a(j,j) = j;
    end;
    a
    // циклы с уменьшающейся переменной цикла
    for j= 4:-1:1
        disp(j);
    end

    //цикл по столбцам матрицы
    for  e=eye(3,3)
        e
    end
    for v=a
      write(6,v)
    end
    for j=1:n
      v=a(:,j)
      write(6,v)
    end

    //цикл по элементам списка
    for l=list(1,2,'example')
       l
    end

## Смотрите также

- while
- end
- do