2
respostas

Dúvida a respeito da lógica de funcionamento da função if (aula 4 parte 6)

Olá ! Tenho uma dúvida a respeito da função if, nesta parte do código if( x > 600) { sentido = -1 } else if (x < 0) { sentido = 1; } definimos que se o x é maior que 600 então o sentido é -1. Minha dúvida é uma vez que o sentido só é igual a -1 quando o x > 600, então não seria o caso de quando o x atingisse o valor de 601, a modificação x = x + sentido, faria ele voltar ao valor de 600 e assim sucessivamente fazendo com que a bolinha ficasse travada? Pra ficar mais claro, se exibirmos o valor do x através do console.log veremos que a bolinha continua indo para o sentido da direita pra esquerda, mesmo quando o valor do x não é maior que 600...

2 respostas

Opa Mauro, se x não é maior que 600, mas também não é menor que zero, ele vai sendo decrementado de -1 até que fique menor que zero novamente.

Oi Alberto, ainda fiquei com dúvida sobre a atuação do if. Porque o if( x > 600) { sentido = -1 } não diz que o x só deve ser decrescido uma unidade quando ele for maior que 600? Pelo que entendi para que a funcionalidade que vc passou fosse executada teríamos que ter if(x<600 && x>0){ sentido = -1}. O que eu pensei como lógica plausível para a função if seria a seguinte: Uma vez que o x tenha passado o valor de 600 uma única vez o conteúdo dentro dos {} passaria valer independentemente dos próximos valores que o x receberá. Neste caso seria o -1 seria subtraído dele até o menos infinito. Porém, como temos a segunda parte: else if (x < 0) { sentido = 1; } , a partir do momento que x atingisse um valor inferior a 0, o incremento +1 passaria valer, até o +infinito (caso não tivéssemos a primeira condição if( x > 600) { sentido = -1 } que fará com que a oscilação ocorra infinitamente).Na minha dúvida, eu estava interpretando o if como uma espécie de while (esquanto), mais detalhadamente enquanto o x for maior que 600 ou ainda melhor se, e somente se, o x for maior que 600, o sentido é igual a -1. Está minha segunda interpretação está correta? Pois foi justamente essa dúvida que me impediu de construir o código. Obg pela atenção!