Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

263
Visualizações
¿Cómo detener el bucle si solo uno de estos no es cierto?

Tengo una función while que se ejecutará en modo automático si el modo automático está activado ( checkBox.checked )

El problema es que este código solo se detiene una vez que tanto a como b superan el límite de mi juego # ( bestof.value ). Quiero que se detenga una vez, solo uno de estos no es cierto.

Cuando uso while(a || b < bestof.value) se agota el tiempo hasta que la pila alcanza su límite. Tampoco devuelve valores.

 if ( checkBox.checked == true ) { while( a && b < bestof.value ) { myFunction(); } };

¿Alguna idea de cómo puedo solucionar esto?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Está tratando de decir que se supone que a y b son más pequeños que bestof.value?

Desafortunadamente, no es así como funciona la sintaxis, && separa las declaraciones, por lo que básicamente estás diciendo que a es verdadero y b es más pequeño que...

Lo que necesitas es esto:

 if (checkBox.checked == true){ while(a < bestof.value && b < bestof.value){ myFunction(); };

Como se dio cuenta correctamente, su código solo se detiene tan pronto como a y b están por encima del valor, ya que verifica si a existe y b está por encima del valor, por lo que básicamente su activación es cuando b supera el valor.

Otro ejemplo:

 let a = 1 let b if (a) { console.log("a exists") } if (b) { console.log("b exists") }

Como puede ver, "b existe" no se está imprimiendo, y esto es básicamente lo que le pregunta al ciclo while antes de && , si existe...

about 4 years ago · Juan Pablo Isaza Relatório

0

Errores que cometiste:

  1. while la condición para " Quiero que el ciclo se detenga una vez que uno de a o b sea mayor que el límite de mi juego " es la misma que " ejecutar el ciclo hasta que tanto a como b sean menores que el límite ":
 while(a < bestof.value && b < bestof.value) { ... }
  1. No es necesario convertir/comparar if la condición es booleana por su cuenta, JS lo hará automáticamente, así que esto es suficiente:
 if (checkBox.checked) { ... }
  1. Te lo perdiste '}'. Siempre compare el número de paréntesis abiertos y cerrados si su IDE/editor no lo hace.
 if (checkBox.checked == true){ while(a && b < bestof.value) { myFunction(); // ↑ here you forget to close while body };

Además: siempre puede detener cualquier bucle con la palabra clave break :

 white(condition) { if (needToStop) { break; } }

Conclusión: su código debería verse así:

 if (checkBox.checked) { while(a < bestof.value && b < bestof.value) { myFunction(); } };
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda