Académique Documents
Professionnel Documents
Culture Documents
CONDICIONAIS E LOOPS
ABSTRATA
BRENO R. L. MOREIRA
breno@abstratainvest.com
CAPTULO 4:
CONDICIONAIS E LOOPS
CAPTULO 4: Condicionais e loops
Condicionais
IF E ELSE
TERNRIO
SWITCH
Loops
WHILE
DO WHILE
FOR
Break e continue
Ponderaes
CAPTULO 4:
CONDICIONAIS
Condicionais so ferramentas de deciso. Sua funo
realizar uma escolha por meio de uma
comparao entre valores e executar uma determinada
ao a partir disso
Por meio desse tipo de construo, podemos codificar
situaes mais complexas
No Mql5 existem 3 tipos de condicionais
If e else
Ternrio
Switch
CAPTULO 4:
CONDICIONAIS - IF E ELSE
O operador if a forma mais simples de condicional do Mql5
Seu objetivo avaliar uma expresso como falsa ou verdadeira
e executar um bloco de cdigo a depender do resultado
CAPTULO 4:
CONDICIONAIS - IF E ELSE
Podemos construir estruturas de condicionais formando
uma rvore de decises
CAPTULO 4:
CONDICIONAIS - IF E ELSE
CAPTULO 4:
CONDICIONAIS - IF E ELSE
CAPTULO 4:
CONDICIONAIS - IF E ELSE
J o operador else no existe de forma independente
do if. Todo else est atrelado a um if, sendo alocado aps o
bloco inicial
O seu objetivo executar um bloco de cdigo caso a
expresso no if no seja verdadeira
CAPTULO 4:
CONDICIONAIS - IF E ELSE
Ou um bloco executado ou o outro, no sendo
possvel que ambos sejam disparados
Podemos escrever o mesmo cdigo na forma
resumida:
CAPTULO 4:
CONDICIONAIS - TERNRIO
O operador ternrio identificado com o smbolo ? e
possui a funo de atuar como um atalho para os
operadores if e else
CAPTULO 4:
CONDICIONAIS - TERNRIO
No exemplo, a varivel C ir receber um valor a
depender do resultado da comparao A > B. O
smbolo ? Identifica o final da operao lgica e o
incio dos valores de resultado. Em caso verdadeiro, C
assumir o valor de 1 e, no contrrio, valor de 0. Os
dois pontos ( : ) servem como o separador entre os
dois possveis valores de resposta
O mesmo cdigo poderia ser escrito pelo uso de if e
else
CAPTULO 4:
CONDICIONAIS - TERNRIO
Note que o uso do operador ternrio permite uma
compactao do cdigo superior as demais
condicionais
A limitao do uso de ? o fato de que seu resultado
deve estar atrelado a uma varivel, no permitindo
aes independentes
Sua grande aplicao a declarao de variveis
condicionais, no qual a depender de uma situao
queremos que esta assuma valores distintos
CAPTULO 4:
CONDICIONAIS - SWITCH
O operador switch usado quando se deseja fazer
diversas comparaes sucessivas. Para isso, o
identificador case verifica o valor de uma varivel em
relao a um valor inteiro
A comparao s pode ser
efetuado com valores inteiros
CAPTULO 4:
CONDICIONAIS - SWITCH
Em caso de verdadeiro, o cdigo referente a aquele case
ser executado. No exemplo, uma mensagem aparece - X
igual a 2
Ao contrrio dos demais condicionais, ao ser executado um
case, o cdigo continua sendo executado, efetuando as
demais comparaes. Para evitarmos isso, usamos o
operador break a fim de encerrar o condicional naquele
momento. importante atentar-se a esse fato
O identificador default age no intuito de servir como uma
opo no caso de nenhum valor inteiro ser o procurado.
No exemplo, no utilizamos o operador break pelo fato do
bloco ser o ltimo, no demandando encerramento
CAPTULO 4:
CONDICIONAIS - SWITCH
O operador switch possui grande aplicabilidade para permitir
que valores inteiros - e enumeraes - associados a
determinados resultados sejam legveis
CAPTULO 4:
LOOPS
Suponha que queiramos somar um valor constante a um
array de tamanho 1000. invivel que a cada linha de
cdigo acessemos um ndice do array e faamos essa operao
Nesse objetivo, os loops possuem a funo de realizar
determinadas operaes de forma repetitiva, permitindo
que grandes quantidades de cdigo sejam condensadas em
blocos menores
No Mql5 existem trs tipos de loops:
while
do-while
for
CAPTULO 4:
LOOPS - WHILE
O operador while o loop mais simples do Mql5
Funciona de forma simples. Enquanto uma determinada
condio permanecer como true, o cdigo entre as
chaves permanece executando continuamente
CAPTULO 4:
LOOPS - WHILE
A varivel Numero declarada com o valor 0.
Dessa forma, ao adentrar o loop, seu valor
comparada com 5, sendo inferior e retornando true.
Essa condio permite a execuo do bloco entre
chaves do loop, printando seu valor e adicionando 1
a seu valor. Novamente, o processo se repete e a
comparao realizada novamente, retornando true. A
repetio apenas se encerra com Numero
assumindo valor de 5 e, portanto, no sendo menor
que 5.
CAPTULO 4:
LOOPS - WHILE
Assumindo o valor de 5, a varivel Numero resulta no
encerramento do loop. No teste lgico, 5 no
inferior a 5, mas igual. Caso quisssemos que o loop
s se encerrasse no valor de 6, poderamos usar o
smbolo de menor ou igual (<=)
Podemos usar o operador break para encerrarmos o
Enquanto
loop antes da condio
do whileA < B, o loop
CAPTULO 4:
LOOPS - WHILE
Ao encerrarmos um loop por meio do operador break, a
sada do bloco ocorre no mesmo momento, de modo que
o cdigo restante do loop no executado
CAPTULO 4:
LOOPS - DO WHILE
O operador do-while atua de forma muito
semelhante ao while. A nica diferena entre os dois
loops reside no fato que no do-while a condio de
execuo do loop verificada ao final do mesmo
Dessa forma, o loop do-while sempre ser disparado
ao menos uma vez, independente do teste lgico de
execuo
CAPTULO 4:
LOOPS - DO WHILE
O loop do-while composto do operador do, seguido do
bloco do loop e se encerrando com o while e a condio
de parada
Independente do teste lgico, uma vez o loop ser
executado. No exemplo, o valor da varivel Numero 0,
inferior a 5, sendo que o teste lgico do while Numero > 5.
Ainda sim, h a sada da mensagem O valor de Numero 0,
comprovando sua execuo
Tanto os loops while quanto do-while geralmente so
utilizados quando no se sabe ao certo a quantidade de
vezes que um loop ir ser executado ou quando a
condio de execuo realizada por uma varivel
lgica
CAPTULO 4:
LOOPS - FOR
O loop for indicado para uso de variveis inteiras
para controle de sua execuo
Sua estrutura composta de trs partes
Declarao de uma varivel de controle do loop
Uma expresso lgica que avalia a execuo do loop
Uma expresso executada ao fim de cada bloco
CAPTULO 4:
LOOPS - FOR
A declarao de um for seguida por estrutura fixa. No
exemplo, declaramos a varivel inteira Numero igual a 0.
O primeiro ponto e vrgula tem a funo de separar a
declarao de variveis da condio de execuo do
loop. No caso, adotamos Numero < 5
Por fim, aps um novo ponto e vrgula, escolhemos a
expresso que ser usada para iterar o loop, Numero
++
Ou seja, a cada entrada a condio de Numero < 5
verificada e, logo aps, o bloco do operador executado,
printando o valor da varivel. Ao fim do loop, Numero
tem seu total acrescido de 1
CAPTULO 4:
LOOPS - FOR
Podemos declarar tambm mltiplas variveis no for
CAPTULO 4:
LOOPS - FOR
Podemos declarar tambm mltiplas variveis no for
CAPTULO 4:
LOOPS - BREAK E CONTINUE
O operador break j foi apresentado, sendo usado
quando desejamos interromper um loop de forma
imediata, sem que o restante do cdigo seja executado
Outro operador til o continue. Sua funo pular
uma determinada interao do loop, fazendo com
que o cdigo do bloco, naquela iterao, no seja
executado. A prxima execuo ocorre de forma
normal
CAPTULO 4:
PONDERAES
importante avaliar o loop minuciosamente, pois
alguns loops podem levar a execues infinitas,
congelando o programa
CAPTULO 4:
PONDERAES
Vale lembrar que arrays possuem ndice de acesso igual
tamanho - 1, uma vez que comeam do zero e portanto
terminam uma unidade antes do seu tamanho
declarado
CAPTULO 4:
PONDERAES