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

## Примеры

"традиционный" для циклов :

    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
        j
    end

цикл по столбцам матрицы :

    M = [1 2 ; 3 4 ; 5 6]'
    for  c = M, c, end

    -> M = [1 2 ; 3 4 ; 5 6]'
     M  =
       1.   3.   5.
       2.   4.   6.

    --> for  c = M, c, end
     c  =
       1.
       2.

     c  =
       3.
       4.

     c  =
       5.
       6.

    for v = a, write(%io(2),v), end
    for j = 1:n, v = a(:,j), write(%io(2),v), end

цикл по элементам списка :

    for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end

    --> for l = list([1 2;3 4], (1+%z)^3, 'example', [%F %T]); l, end
     l  =
       1.   2.
       3.   4.

     l  =
                2   3
       1 +3z +3z  +z

     l  =
     example

     l  =
      F T

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

- while
- end
- do

## История

6.0.0 Теперь for `expression` может быть вектором указателей на графические окна. `for` is now protected: Assignments like `for=1` are no longer possible.