faandorin:
Почему выражение
for (a=20; a<=0;a--) {A[a+1] = A[a]; A[0]=B}
дает другой результат, по сравнению с выражением:
for (a=20; a<=0;a--) A[a+1] = A[a]; A[0]=B
Спасибо. Влад.
Потому что действие оператора цикла работает до ";" или окончания блока "{}".
for (a = 20; a <= 0; a--) A[a + 1] = A[a]; A[0]=B; // Это новый оператор. Здесь цикл не работает.
Спасибо за быстрый ответ! Это я понимаю, но ведь цикл не касается A[0]=B (там нет буквы а), а тем не менее в регистр записываются значения по разному в этих двух случаях.
Там индекс 0. Это тоже самое, что a=0.
Ещё сам цикл со странным условием. Он не начнётся.
Спасибо! Над этим надо подумать. Да, там конечно ошибка, должно быть a>=0.
Влад
Разница только в последнем проходе цикла. В первом варианте Вы уже изменили значение A[0] на В и оно записывается в A[1]. Во втором - идет правильная сдвижка и только в конце A[0] получит новое значение.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему выражение
for (a=20; a<=0;a--) {A[a+1] = A[a]; A[0]=B}
дает другой результат, по сравнению с выражением:
for (a=20; a<=0;a--) A[a+1] = A[a]; A[0]=B
Спасибо. Влад.