Ошибки, баги, вопросы - страница 2889
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У Вас случайное число 0, у меня 540016640
но все равно это случайные числа
Я уж подумал что MQ обнулили.
Я уж подумал что MQ обнулили.
С глобальными переменными вроде иницилизируются нулем, а вот в теле функций встречался на первом проходе разные инициализации. Стараюсь перед пользованием всегда инициализировать. Хотя согласен, поведение должно быть однозначным.
И еще объявление в теле цикла, в круглых скобках делает переменную локальной по отношению к циклу. принимаю как есть. В доках этого просто нет.
Так же, компилятор не предупреждает, что переменная не инициализирована.
Print(...) может не предупреждать, как если бы передача параметра шла по неконстантной ссылке
Если циклы одинаковые, то и поведение компилятора должно быть одинаковым, а оно разное. В этом и заключается ошибка. Вы объяснили почему предупреждение есть в случае (1), тогда объясните почему его нет в случае (2) ? Что принципиально поменялось? А потом, если используется неинициализированная переменная, то почему конечный результат при выполнении правильный - там же случайное число должно в таком случае быть.
Есть такая наука - логика. Если A и B одинаковые и А красного цвета, то В тоже должно быть красным, а не зеленым
Я не учился на программиста, могу только логически порассуждать как Василий Иваныч с Петькой рассуждал о логике.
В первом случае выполняется вся строка
и тут переменная j не инициализирована, но её значение присваивается переменной i
Во втором случае, несмотря на то, что переменная j не инициализирована, в следующей строке, где она используется не её значение присваивается, а ей присваивается значение. Иными словами переменная j инициализируется значением переменной i
Вот такой вариант тоже без предупреждений
Я не учился на программиста, могу только логически порассуждать как Василий Иваныч с Петькой рассуждал о логике.
В первом случае выполняется вся строка
и тут переменная j не инициализирована, но её значение присваивается переменной i
А кто учился? Думаю большинство здесь (как и я) самоучки
Вам нужно изучить оператор цикла for, чтобы понять последовательность действий. В (1)ом случае переменной j присваивается значение i+1
j = i+1
до того, как она она появится справа от оператора присваивания
С глобальными переменными вроде иницилизируются нулем, а вот в теле функций встречался на первом проходе разные инициализации.
Стараюсь перед пользованием всегда инициализировать. Хотя согласен, поведение должно быть однозначным.
И еще объявление в теле цикла, в круглых скобках делает переменную локальной по отношению к циклу. принимаю как есть. В доках этого просто нет.
Да, я тоже всегда инициализирую переменные, это как дважды два, должен помнить всегда.
Вбили в голову из языка Си ))
По этому данный пример цикла с неинициализированной переменной, плохая практика.
Да, я тоже всегда инициализирую переменные, это как дважды два, должен помнить всегда.
Вбили в голову из языка Си ))
По этому данный пример цикла с неинициализированной переменной, плохая практика.
Инициализировать нужно, но только осмысленным значением. В указанном примере такого значения нет, поэтому практика не плохая, единственно возможная. В противном случае была бы двойная инициализация
Инициализировать нужно, но только осмысленным значением. В указанном примере такого значения нет, поэтому практика не плохая, единственно возможная. В противном случае была бы двойная инициализация
А что поменяется? если инициализировать
А что поменяется? если инициализировать
А почему нулем, а не j=333 допустим? Т.е. это бессмысленная инициализация, которая может скрыть трудноуловимую ошибку
А почему нулем, а не 333 допустим? Т.е. это бессмысленная инициализация, которая может скрыть трудноуловимую ошибку
Ели вам нужно отловить ошибку этого значения, ну и проинициализируйте её 333 ))
Это же только стартовое значение.