Юлия: Область переменных во вложенном цикле - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь изменить переменную в цикле for, который находится в цикле while. Я знаю, что диапазон переменных в цикле for по умолчанию равен local, поэтому я ставлю global перед переменной, которую я хочу изменить. Это работает для i, но не для turn. Когда я добавляю global перед turn в цикле for, я получаю следующую ошибку:

ОШИБКА: LoadError: синтаксис: global turn: turn - локальная переменная в прилагаемой области действия

i = 0
while(i <= 3)
    global i += 1
    turn = 0
    for j = 1:2
        turn += 1  # if I add a global in front of turn I get an error message
        println("Turn: ", turn)
    end
end

Результат:

Turn: 1
Turn: 2
Turn: 1
Turn: 2
Turn: 1
Turn: 2
Turn: 1
Turn: 2

Но я хочу:

Turn: 1
Turn: 2
Turn: 3
Turn: 4
Turn: 5
Turn: 6
Turn: 7
Turn: 8

Как я могу изменить turn во вложенном цикле for?

1 Ответ

0 голосов
/ 13 сентября 2018

Я могу получить желаемый выход, переместив поворот за пределы цикла while. Для записи, я также не получаю сообщение об ошибке при запуске вашего кода. Какую версию Юлии вы используете?

i = 0
turn = 0
while(i <= 3)
    global i += 1
    for j = 1:2
        global turn += 1  
        println("Turn: ", turn)
    end
end
...