Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ведешь свой блог? Размести в нем ссылку на MQL5.community и заработай!
Vlad
11
Vlad 2014.05.24 12:34 

Почему выражение

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


Спасибо.  Влад.

Vadim Zhunko
5220
Vadim Zhunko 2014.05.24 12:47  
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; // Это новый оператор. Здесь цикл не работает.
Vlad
11
Vlad 2014.05.24 12:51  
Спасибо за быстрый ответ! Это я понимаю, но ведь цикл не касается A[0]=B (там нет буквы а), а тем не менее в регистр записываются значения по разному в этих двух случаях.
Vadim Zhunko
5220
Vadim Zhunko 2014.05.24 12:58  

Там индекс 0. Это тоже самое, что a=0.

Ещё сам цикл со странным условием. Он не начнётся.

Vlad
11
Vlad 2014.05.24 13:11  

Спасибо! Над этим надо подумать. Да, там конечно ошибка, должно быть a>=0.

Влад

Alexander
2441
Alexander 2014.05.24 22:33  
Разница только в последнем проходе цикла. В первом варианте Вы уже изменили значение A[0] на В и оно записывается в A[1]. Во втором - идет правильная сдвижка и только в конце A[0] получит новое значение.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий