Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 497
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Aqui diz em brancohttps://docs.mql4.com/ru/basis/operators/for
https://docs.mql4.com/ru/basis/variables/variable_scope
Obrigado, mas já li a primeira ligação antes e a segunda confirma a lógica que utilizei ao escrever o código.
No entanto, estou confuso com esta afirmação no segundo link "... Háoutra variável com o mesmo nome fora deste laço... "Segue-se que o valor de uma variável global permanece o mesmo apesar de dentro do bloco ser declarada uma nova variável com o mesmo nome, mas este disparate porque se declarar uma nova variável, o valor da primeira será apagado, então não compreendo, de que serve usar e armazenar duas variáveis diferentes (local e global), mas com o mesmo valor?
Obrigado, mas já li a primeira ligação antes, e a segunda confirmou a lógica que utilizei ao escrever o código.
No entanto, estou confuso com esta afirmação a partir do segundo link "...fora deste laço há outra variável com o mesmo nome. "Mas isto é um disparate porque se declarar uma nova variável, o valor da primeira será apagado, então não compreendo, de que serve usar e armazenar duas variáveis diferentes (local e global), mas com o mesmo valor?
Na minha opinião, está a escrever disparates. Se declarar uma variável local dentro de um laço ou função, o valor de uma variável global com o mesmo nome não será afectado, mas o compilador avisá-lo-á que declarou uma variável local com o mesmo nome que a variável global existente e que trabalha dentro de uma função ou bloco de código cujo âmbito inclui a variável recentemente declarada não afectará o valor da variável global. Avisa-o sobre isto para que compreenda que se trata de uma nova variável, e para que não espere que o valor da variável global mude depois de deixar o âmbito do bloco no qual declarou uma nova variável com o mesmo nome que a variável global existente.
Em termos simples: tudo dentro do apartamento aplica-se a todos os quartos e é partilhado por todos os quartos (variável global). E tudo o que está dentro de uma sala - aplica-se apenas à sala e não é visível de outras salas (é uma variável local).
Ainda mais simples? Por favor:
Se estragar o ar na casa de banho (localmente), é aí que se faz a confusão. Entretanto, todo o apartamento (globalmente) sabe (como resultado das suas experiências na casa de banho) que é melhor não ir à casa de banho... Mas o ar é um conceito para todo o apartamento, e todos os residentes sabem sobre o ar estragado na casa de banho. Ao mesmo tempo, só a pessoa sortuda que está na casa de banho pode experimentar todas as delícias de mudar o ambiente local dentro do espaço confinado (influência local do valor da variável). O resto de nós sabemos disso, mas não o sentimos. Quando se sai da sanita, perde-se as sensações (valores locais) que se experimenta na sanita e começa-se a respirar ar fresco (obter os valores globais do ar), sabendo, como todos os outros, que há um pontapé nas calças (o resultado da função de contaminação do ar, que afecta a vida global de todo o apartamento)...
Espero ter-me feito entender
Penso que estás a escrever disparates. Se declarar uma variável local dentro de um laço ou função, o valor da variável global com o mesmo nome não será sobrescrito, mas o compilador avisá-lo-á que declarou uma variável local com o mesmo nome que a variável global existente, e trabalhando dentro de uma função ou bloco de código cujo âmbito inclui a variável recentemente declarada, não afectará o valor da variável global. Avisa-o sobre isto para que compreenda que se trata de uma nova variável, e para que não espere que o valor da variável global mude depois de deixar o âmbito do bloco no qual declarou uma nova variável com o mesmo nome que a variável global existente.
Em termos simples: tudo dentro do apartamento aplica-se a todos os quartos e é partilhado por todos os quartos (variável global). E tudo o que está dentro de uma sala - aplica-se apenas à sala e não é visível de outras salas (é uma variável local).
Ainda mais simples? Por favor:
Se estragar o ar na casa de banho (localmente), é aí que se faz a confusão. Entretanto, todo o apartamento (globalmente) sabe (o resultado das suas experiências na casa de banho) que é melhor não ir à casa de banho... Mas o ar é um conceito para todo o apartamento, e todos os ocupantes sabem sobre o ar estragado na sanita. Ao mesmo tempo, só a pessoa sortuda que está na casa de banho pode experimentar todas as delícias de mudar o ambiente local dentro do espaço confinado (influência local do valor da variável). O resto de nós sabemos disso, mas não o sentimos. Quando se sai da sanita, perde-se as sensações (valores locais) que se experimenta na sanita e começa-se a respirar ar fresco (obter os valores globais do ar), sabendo, como todos os outros, que há um pontapé nas calças (o resultado da função de contaminação do ar, que afecta a vida global de todo o apartamento)...
Espero ter-me feito entender
Descobriu a verdade na sua obra - obrigado! Acontece que declarar uma variável dentro de um bloco com o mesmo nome que a variável global resulta no bloqueio de dados da variável global dentro do bloco... e o aviso sobre a variável já declarada não pode ser removido, certo?
Obrigado, mas já li a primeira ligação antes, e a segunda confirmou a lógica que utilizei ao escrever o código.
No entanto, estou confuso com esta afirmação a partir do segundo link "...fora deste laço há outra variável com o mesmo nome. "Mas este disparate porque se declarar uma nova variável, o valor da primeira será apagado, então não está claro para mim, de que serve usar e armazenar duas variáveis diferentes (local e global), mas com o mesmo valor?
Infelizmente não está escrito correctamente :(
Infelizmente, está mal escrito aí :(
não o diz correctamente na ajuda.
Porque me está a dar o código? Não sei o que procurar nele... ...e estou limitado pelo tempo. Pode dizer-me para que serve e qual é o erro na ajuda.
é o código da ajuda
é "i" no início da função
depois no loop é novamente "i".
é o código da ajuda
é "i" no início da função
então no laço está "i" novamente
Bem, não há erro: um laço com i global (azul), e outro laço com i local (vermelho)