Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нехорошо быть таким хвастунишкой, проказник!
Да не, я спокоен. Мне приятно, что есть умные люди. И что их много вокруг меня.
Код просто для примера, написал что в голову пришло, интересен сам принцип работы continue в цикле for
тогда нужно было сделать более наглядный пример, чтобы разобраться с оператором continue, я бы такой код писал:
2020.09.01 08:25:02.798 tst (EURUSD,H1) continue , i = 0
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 1
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 2
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 3
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 4
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 5
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 6
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 7
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 8
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 9
тогда нужно было сделать более наглядный пример, чтобы разобраться с оператором continue, я бы такой код писал:
2020.09.01 08:25:02.798 tst (EURUSD,H1) continue , i = 0
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 1
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 2
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 3
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 4
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 5
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 6
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 7
2020.09.01 08:25:02.799 tst (EURUSD,H1) i = 8
2020.09.01 08:25:02.799 tst (EURUSD,H1) continue , i = 9
Continue это переход в начало цикла, другого смысла в нем нет. Итератор он не увеличивает, просто следующие за ним строки до закрывающей скобки цикла не читаются.
continue используется для прерывания итерации цикла и перехода к следующей
так что в циклах с итератором, итератор все таки наращивается
Начинается цикл, в первом проходе i=0,
исполняем код 1,
доходим до if,
если условие не выполняется исполняем код 2,
доходим до закрывающей скобки и переходим на for,
увеличиваем i на единицу и проверяем, что i<5
если меньше, то заходим на второй круг, если не меньше, то переходим за закрывающую скобку, то есть выходим из цикла.
Во втором проходе если условие в if выполняется, то по continue сразу переходим на for, не выполняя код 2.
и тут как всегда, i увеличиваем на единицу и проверяем неравенство
В итоге после цикла i будет равно 5 потому, что мы сначала увеличиваем, а потом проверяем.
continue
Рустамжан, Сергей спрашивал, не увеличивает ли оператор continue счетчик i. Я так понял его вопрос.
В итоге после цикла i будет равно 5 потому, что мы сначала увеличиваем, а потом проверяем.
а справку не судьба дочитать ?
))))
с точностью до наоборот - сначала проверяем, затем тело цикла, в конце выполнения тела цикла увеличиваем
и опять по кругу - проверяем + тело + увеличиваем
как будет работать такой цикл:
как Вы пишете, должен быть выход за пределы массива - я специально в пример даже преинкремент вставил ;)
2020.09.01 12:03:36.029 tst (EURUSD,H1) Print: arr[0] = 0
2020.09.01 12:03:36.029 tst (EURUSD,H1) printf: i = 1
2020.09.01 12:03:36.029 tst (EURUSD,H1) Print: arr[1] = 1
2020.09.01 12:03:36.029 tst (EURUSD,H1) printf: i = 2
2020.09.01 12:03:36.029 tst (EURUSD,H1) Print: arr[2] = 2
2020.09.01 12:03:36.029 tst (EURUSD,H1) printf: i = 3
2020.09.01 12:03:36.029 tst (EURUSD,H1) Print: arr[3] = 3
2020.09.01 12:03:36.029 tst (EURUSD,H1) printf: i = 4
2020.09.01 12:03:36.029 tst (EURUSD,H1) Print: arr[4] = 4
2020.09.01 12:03:36.029 tst (EURUSD,H1) printf: i = 5