¿Es posible evitar muchas "ores" (||) en las condiciones que provocan la misma acción? - página 8

 
paladin80:

En mis programas, si hay muchos ifs, utilizo esta construcción, con las condiciones que más frecuentemente darán falso en primer lugar:

Y si necesito comprobar muchos if-ops, uso este modo:
Gracias, Maxim! Pero eso no es bueno, porque mis diferentes condiciones no son comparables en lógica, ni en parámetros!
 
alsu:

No, no funciona así. En primer lugar, debe haber algo después de if(), al menos un punto y coma (es decir, un operador vacío) . En segundo lugar, ¿a cuál de los si se supone que pertenece su otro operador? Si se refiere sólo a la última (tal y como la has escrito), entonces la Acción se ejecutará sólo si la condición D es verdadera siempre que A,B y C sean falsas. Siempre es aconsejable colocar llaves para ver claramente la lógica.

Si es posible resaltarlo, entonces es una buena idea hacerlo de esta manera:

if (!A && !B && !C && !D) ;//пустой оператор
else Action();

  

¿Cómo? ¿Es posible? -------------------------- Lo he comprobado en código, el compilador da un aviso;

';' - punto y coma inesperado C:\N-archivos de programa

Si funciona, ¿podemos aguantar la advertencia también?

 
borilunad:

Si el que he destacado es posible, entonces sería bueno hacerlo:

¿Cómo? ¿Es posible? -------------------------- Comprobado en el código, el compilador da un aviso;

';' - punto y coma inesperado C:\N-archivos de programa

Si funciona, ¿podemos aguantar la advertencia también?

if (!A && !B && !C && !D) return(0); //закончение действия программы
else Action();
 
paladin80:

¡Muchas gracias! ¡Qué fácil es!

Sin embargo, tuve que poner este bloque al final del inicio, porque return(0) no dejaba que nada más funcionara después.

 
¿Alguien ha medido la velocidad? )))
 
TheXpert:
¿Alguien ha medido la velocidad? )))

¡Tomaré una medida!

¡Por fin lo he medido! ¡Son 17,26! Eso es 10 minutos más que el mejor if() sin trucos en seis meses en el probador. Lo siento, pero no se puede evitar. ¡Seguiré investigando! ¡Gracias a todos! Pero es demasiado pronto para resumirlo.

 
borilunad:

Si el que he destacado es posible, entonces sería una buena idea hacerlo:

¿Cómo? ¿Es posible? -------------------------- Comprobado en el código, el compilador da un aviso;

';' - punto y coma inesperado C:\N-archivos de programa

Si funciona, ¿podemos aguantar la advertencia también?


Se da una advertencia en caso de que alguien ponga una coma en el lugar equivocado(el operador vacío ';' no se usa a menudo). Esta construcción funciona y es perfectamente legal.
 
borilunad:
¡Tomaré la medida!

Pero hay que comprobar todas las opciones. De lo contrario, podría estar equivocado.
 
borilunad:

Si el que he destacado es posible, entonces sería una buena idea hacerlo:

¿Cómo? ¿Es posible? -------------------------- Comprobado en el código, el compilador da un aviso;

';' - punto y coma inesperado C:\N-archivos de programa

Si funciona, ¿podemos aguantar también la advertencia?

Para que las advertencias sean menos molestas, utilice: {}

if (!A && !B && !C && !D) {} //пустой оператор
else Action();

 
PapaYozh:

Para evitar que las advertencias le entorpezcan la vista, utilice {}: {}

Gracias. ¡Probaré esos soportes ahora!