none
Двойной цикл не работает

    Вопрос

  • Либо лыжи не едут, либо я.

    Простейшая задача - нужно организовать цикл в цикле. Вот такого рода:

    for ($i = 0; $i -ge 3; $i++)
        {
        for ($j = 0; $j -ge 5; $j++)
            {
            $i
            $j
            }
        }

    Даже этот цикл не выполняется! Вывод - пустой. Что я делаю не так?



    • Изменено atulyakov 11 января 2019 г. 9:18
    11 января 2019 г. 9:17

Ответы

  • for ($i = 0; $i -le 3; $i++)
        {
        for ($j = 0; $j -le 5; $j++)
            {
            $i
            $j
            }
        }

    Сам спросил, сам ответил...

    Блин, а почему именно так? Я думал, что цикл прерывается тогда, когда выполнится условие, что $i больше, чем 3.

    Запутался...

    • Изменено atulyakov 11 января 2019 г. 9:22
    • Помечено в качестве ответа KazunEditor 11 января 2019 г. 9:28
    11 января 2019 г. 9:20

Все ответы

  • for ($i = 0; $i -le 3; $i++)
        {
        for ($j = 0; $j -le 5; $j++)
            {
            $i
            $j
            }
        }

    Сам спросил, сам ответил...

    Блин, а почему именно так? Я думал, что цикл прерывается тогда, когда выполнится условие, что $i больше, чем 3.

    Запутался...

    • Изменено atulyakov 11 января 2019 г. 9:22
    • Помечено в качестве ответа KazunEditor 11 января 2019 г. 9:28
    11 января 2019 г. 9:20
  • About For - https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_for?view=powershell-6

    The <condition> placeholder represents the portion of the For statement that resolves to a true or false Boolean value. Windows PowerShell evaluates the condition each time the For loop runs. If the statement is true, the commands in the command block run, and the statement is evaluated again. If the condition is still true, the commands in the statement list run again. The loop is repeated until the condition becomes false.

    $i -ge 3 - В данном случае условие ложно, при начальном условии i=0 и цикл не выполяется.

    $i -le 3 - В данном случае условие истино, при начальном условии i=0 и цикл выполняется пока i не станет 4.

    11 января 2019 г. 9:33
    Отвечающий
  • About For - https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_for?view=powershell-6

    The <condition> placeholder represents the portion of the For statement that resolves to a true or false Boolean value. Windows PowerShell evaluates the condition each time the For loop runs. If the statement is true, the commands in the command block run, and the statement is evaluated again. If the condition is still true, the commands in the statement list run again. The loop is repeated until the condition becomes false.

    $i -ge 3 - В данном случае условие ложно, при начальном условии i=0 и цикл не выполяется.

    $i -le 3 - В данном случае условие истино, при начальном условии i=0 и цикл выполняется пока i не станет 4.

    То есть фактически это do... until...
    11 января 2019 г. 11:37
  • То есть фактически это do... until...

    Несовсем, do-until - https://ss64.com/ps/until.html

    A Do..While loop continues as long as the condition is TRUE.
    A Do..Until loop continues as long as the condition is FALSE. Until is an antonym of While.

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

    11 января 2019 г. 11:57
    Отвечающий