Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[duvida] fechamento das chaves das condições 'se'

Reparei que o meu código não funcionou com o fechamento das chaves formando um bloco para 'if' e dentro dele as condições para 'então se'. Que seria mais ou menos assim:

        if (evento.shiftKey && evento.altKey) {

            else if(evento.shiftKey && raio + 10 <= 40) {
            raio = raio + 10;
            } 

            else if(evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;
            }
        }   

O que pra mim, seria mais ou menos como no bloco da função. Onde formamos o bloco da função e dentro dele as funções para executar quando chamada.

function função(evento){
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

                if (evento.shiftKey && evento.altKey) {

            } else if(evento.shiftKey && raio + 10 <= 40) {
            raio = raio + 10;

            } else if(evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;

        }
}

A minha questão é só o porque de fecharmos o 'if' para depois adicionarmos 'else if'

                if (evento.shiftKey && evento.altKey) {

            } else if(evento.shiftKey && raio + 10 <= 40) {
            raio = raio + 10;

            } else if(evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;

        }
3 respostas

Boa noite, Fernando,

o problema do primeiro código é que você está chamando a condicional else if, que significa ("senão se"), dentro do if anterior. Oprograma vai testar a primeira condição, se ambas teclas estão pressionadas, se for verdadeira entrará na primeira condicional else. Porém, caso a primeira condicional seja falsa o programa nem entra dentro das {}, portanto, não executa o seu else if. Por isso, é necessário abrir e fechar {} no if neste caso.

solução!

Oi, Fernando

O bloco de código á para condição

Exemplos de uso:

// exemplo 1
if (condição) {
   executa bloco se condição for verdadeira
}


// exemplo 2
if (condição) {
   executa bloco se condição for verdadeira
} else {
   executa bloco se a condição for falsa
}


// exemplo 3
if (condição1) {
   executa bloco1 se a condição1 for verdadeira
} else if (condição2) {
   executa bloco2 se a condição1 for falsa e a condição2 for verdadeira
} else if (condição3) {
  executa bloco3 se as condição1 e condição2 forem falsas e acondição3 for verdadeira
...
} else {
   executa bloco se todas as condições forem falsas
}

Pessoal, obrigado pelas explicações. A minha dúvida foi completamente esclarecida.