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

Dúvida antiga - for e while

Olá a todos, minha dúvida fica em relação a for e while, estou me confundindo com a matéria, tentei revisar mas não consegui achar a resposta que queria. Como podem ver no código abaixo fiz o exercício utilizando "for", que além de ser totalmente diferente da resposta também não deu certo. Minhas dúvidas são as seguintes: Posso utilizar for e while nesses casos? Se sim poderiam me mostrar como? Se não for possível utilizar, qual é o motivo?

Talvez com essas resposta consiga utilizar o for e while mais corretamente.

Fico no aguardo, obrigado!

<canvas width="600" height="400"></canvas>

<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    var raio = 10;


    function desenhaCirculo(evento) {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        console.log(x + ',' + y);

        for(var i = 5; i <= 40; i++){
            if (evento.shiftKey) {

               raio = raio + i;
                i = i +5;            
            }

            if (evento.altKey) {

               raio = raio - i;
               i = i - 5;
            }
        }


        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14);
        pincel.fill();

    }

    tela.onclick = desenhaCirculo;

</script>
3 respostas
solução!

Oi Genesis, nesse caso onde dependendo de qual seja o evento eu tenho duas ações, ou seja se a tecla(SHIFT) for pressionada eu aumento o raio da bolinha e se outra tecla(ALT) for pressionada eu diminuo o raio da minha bolinha, não seria legal utilizar uma estrututra de repetição NESSE CASO e sim 'CONDIÇÃO'. Pois não vamos sempre aumentar ou sempre diminuir, vamos alternar entre um ou outro certo, logo o ideal seria utilizar uma estrutura de condição se o evento for shift aumente senão se o evento for alt diminua.

Caso persista alguma dúvida a respeito desse exercício pode perguntar aqui mesmo ou se você não tiver mais nenhuma dúvida a respeito você pode marcar uma resposta como solução, finalizando assim esse tópico.Espero ter ajudado. Bons estudos.

Você usa for e while quando você quer criar um bloco de comandos que irão se repetir baseado em uma determinada condição.

o for você usa quando souber a quantidade de vezes que seu código precisa ser executado:

for (i = 0; i<5;i++) {
// codigo
}

O whilevocê usa enquanto determinada condição for verdadeira:

while (desenha) {
// codigo
}

O que você quer fazer nesse trecho do código é verificar se determinada condição é verdadeira:

if (evento.shiftKey) {
// codigo
}

Muito obrigado aos dois pelas respostas, elas se complementaram. Vou deixar a resposta do Maison como solução mas as duas me ajudaram muito.