¿Es posible evitar muchas "ores" (||) en las condiciones que provocan la misma acción? - página 2
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
También puede optimizar los cálculos de esta manera:
Se ha dicho muchas veces: no hay atajo en ACM, si(a||b||c|d|e){} se comprobarán todas las condiciones.
La salida son las condiciones de anidación:
if(a){if(b){if(c){}} en cuyo caso la salida se producirá en la primera condición coincidente
Pero el anidamiento tampoco es infinito, la solución más flexible es comprobar las condiciones en un bucle con salida :
Se ha dicho muchas veces: no hay atajo en ACM, si(a||b||c|d|e){} se comprobarán todas las condiciones.
La salida son las condiciones de anidación:
if(a){if(b){if(c){}} en cuyo caso la salida se producirá en la primera condición coincidente
Pero el anidamiento tampoco es infinito, la solución más flexible es comprobar las condiciones en un bucle con salida :
No, pero conozco bien a Olbanian :))
Anidar condiciones if(a){if(b){if(c){}} no es bueno, porque todas las condiciones son mutuamente excluyentes, pero algo no funciona con booleanos. Probablemente y muy probablemente estoy haciendo algo mal. Hasta ahora me he detenido en hacer una variable doble para cada condición y pegarla en el mismo if() con 4 "or". Como esperaba, no ha afectado a la velocidad de las pruebas. Los mismos 13 minutos en todas las garrapatas durante 12 meses.
¿O tal vez esta lengua se llamaOblansky?
Las condiciones anidadas if(a){if(b){if(c){}} no son buenas, porque todas las condiciones son mutuamente excluyentes. Probablemente y con toda probabilidad, haciendo algo mal.
Todo está bien, sólo hay que recordar algunas identidades de la aritmética booleana, por ejemplo: a || b = !( !a && !b ). Entonces, al cambiar de conjunción a disyunción podemos sustituir la comprobación de la condición OR por la comprobación consecutiva (anidada) de las condiciones AND: por ejemplo, si (a || b || c) se convierte, como TarasBY ha escrito acertadamente más arriba, en
Este código es en general más rápido que el código original con ||, porque se ejecuta sólo hasta que una de las condiciones de la lista es verdadera, es decir, hasta que toda la operación OR resulta en TRU.
Todo está bien, sólo hay que recordar algunas identidades de la aritmética booleana, por ejemplo: a || b = !( !a && !b ). Entonces, al cambiar de conjunción a disyunción podemos sustituir la comprobación de la condición OR por la comprobación consecutiva (anidada) de las condiciones AND: por ejemplo, si (a || b || c) se convierte, como TarasBY ha escrito acertadamente más arriba, en
Este código es en general más rápido que el código original con || porque se ejecuta sólo hasta que una de las condiciones de la lista es verdadera, es decir, hasta que toda la operación OR da un resultado TRU.
Todo está bien, sólo hay que recordar algunas identidades de la aritmética booleana, por ejemplo: a || b = !( !a && !b ). Entonces, al cambiar de conjunción a disyunción podemos sustituir la comprobación de la condición OR por la comprobación consecutiva (anidada) de las condiciones AND: por ejemplo, si (a || b || c) se convierte, como TarasBY ha escrito acertadamente más arriba, en
Este código es en general más rápido que el código original con || porque se ejecuta sólo hasta que una de las condiciones de la lista es verdadera, es decir, hasta que toda la operación OR da un resultado TRU.
Gracias por su participación. Tengo 5 condiciones diferentes pero iguales, y si no se cumple ninguna condición, el EA espera a que se cumpla una de ellas. Por lo tanto, ninguna forma de aplicación ha demostrado ser mejor, a pesar de mis esfuerzos. Por lo tanto, seguiré con mis "tartas" por ahora.