Est-il possible d'éviter de nombreux "ou" (||) dans les conditions entraînant la même action ? - page 9

 
borilunad:
Merci ! Je vais essayer ces crochets maintenant !
Cette option m'a fait gagner une demi-minute. Et en général, le temps peut avoir augmenté en raison de certains changements dans l'algorithme. Pas le temps de vérifier en détail maintenant, je vérifierai plus tard et chercherai ! Merci !
 
Vinin:

Mais vous devez vérifier toutes les options que vous proposez. Sinon, vous risquez de faire une erreur.
Je vais vérifier ! Je suis le premier intéressé !
 
PapaYozh:

Pour éviter que les avertissements ne vous encombrent les yeux, utilisez {} : {}

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


C'est comme se gratter l'arrière de la tête avec un talon :) Pourquoi quatre opérations supplémentaires et une ligne superflue ? Parce que la version originale ressemblait à ceci :

if (A || B || C || D) Action();
Et il est particulièrement amusant que le topicstarter ait choisi votre variante parmi toutes celles proposées ;))
 
Meat:


C'est comme se gratter l'arrière de ma tête avec un talon :) Pourquoi 4 opérations et une ligne supplémentaires ? Après tout, la version originale ressemblait à ceci :

Et il est particulièrement amusant que le topicstarter ait choisi votre variante parmi toutes celles proposées ;))

J'ai testé toutes les options proposées, et il s'est avéré que la plus rapide est celle-ci : if (A || B || C || D) Action() ;

Pour réduire le temps, j'ai fait quelques conditions, qui sont très rarement nécessaires, mais dans un autre bloc, et j'en ai même ajouté une autre, mais sans les bool's, qui ajouteraient du temps. Je continue à fouiller tout ce qui est possible, en cherchant des simplifications justifiées, jusqu'à présent sur la démo fonctionne de manière stable et sans erreurs. Le fil de discussion est ouvert, je vais sûrement partager quelque chose d'intéressant ou de peu clair. Merci à tous !

 
borilunad:

J'ai testé toutes les variantes proposées, et il s'avère que la plus rapide est celle-ci : if (A || B || C || D) Action() ;

Je me demande comment cela pourrait être plus rapide que ceci : si (A) Action() ; sinon si (B) Action() ; sinon si (C) Action() ; sinon si (D) Action() ;

 
Meat:

Je me demande comment cela pourrait être plus rapide que ceci : si (A) Action() ; sinon si (B) Action() ; sinon si (C) Action() ; sinon si (D) Action() ;

Désolé, Alexey, je viens juste de rentrer à la maison ! Cette version ne convient pas, parce que, comme je l'ai expliqué ci-dessus, Acron() ; n'est pas seulement une fonction d'exécution, mais contient plusieurs autres conditions, communes aux précédentes, mais différentes en direction, et, par conséquent, dans un ordre différent d'exécution des actions nécessaires. Comme vous le comprenez, je n'ai pas pu alourdir le code avec cette variante. Et en principe, je suis d'accord avec vous que votre version pourrait être plus rapide, si Action() ; n'était qu'un appel d'une fonction, rien de plus. Merci beaucoup de m'aider dans ma recherche de solutions optimales ! Bonne nuit à vous !
 
borilunad:
Désolé, Alexey, je viens de rentrer chez moi ! Cette variante ne convient pas, car, comme je l'ai expliqué plus haut, Acron() ; n'est pas seulement une fonction d'exécution, mais contient plusieurs autres conditions, communes aux précédentes, mais différentes dans leur sens, et, par conséquent, dans un ordre différent d'exécution des fonctions d'action nécessaires. Comme vous le comprenez, je n'ai pas pu alourdir le code avec cette variante. Et en principe, je suis d'accord avec vous que votre version pourrait être plus rapide, si Action() ; n'était qu'un appel d'une fonction, rien de plus. Merci beaucoup de m'aider dans ma recherche de solutions optimales ! Bonne nuit à vous !
Le résultat, comme on peut s'y attendre, est de la catégorie : "Le shampooing est devenu encore plus antipelliculaire !!!"! :)))
 
TarasBY:
Le résultat, comme on peut s'y attendre, est du type "Le shampooing est encore plus antipelliculaire ! !!". :)))
Si vous associez les pellicules dans vos cheveux aux bogues dans le code, alors vous devez certainement vous attendre, espérer, réaliser, chercher des solutions intéressantes, mais pas vous ruer !
 
borilunad:
Si vous associez les pellicules dans vos cheveux aux bogues dans le code, alors bien sûr vous devez vous attendre, espérer, réaliser, chercher des solutions intéressantes, mais pas vous ruer !

Et vous appelez ce processus (long de 9 pages) "trouver des solutions intéressantes" ? :)))

Sur la 1ère page - c'était une aide sur "aide", et après la 2ème page il y avait un intérêt - "quel est le chemin le plus rapide". MAIS la réponse à cette question suppose de contenir des chiffres (je n'ai déjà pas mentionné la "pureté de l'expérience" - ce sont des conditions qui assurent l'adéquation des résultats obtenus)... Sinon - à propos du "shampoing" ! :))))

 
TarasBY:

Et vous appelez ce processus (long de 9 pages) "trouver des solutions intéressantes" ? :)))

Sur la 1ère page - c'était une aide sur "aide", et après la 2ème page il y avait un intérêt - "quel est le chemin le plus rapide". MAIS la réponse à cette question suppose de contenir des chiffres (je n'ai déjà pas mentionné la "pureté de l'expérience" - ce sont des conditions qui assurent l'adéquation des résultats obtenus)... :)))

Cette question de la vitesse est ce qui m'a poussé à m'adresser aux estimés membres du forum, "comment éviter beaucoup de "ou" ...", car on croit que cela provoque une perte de temps. Et si certains sont amenés à entrer dans la polémique en raison de leurs ambitions, ou s'obstinent à promouvoir leurs développements, cela reste leur affaire personnelle, et ne me concerne pas. En tout cas, merci à tous ceux qui ont répondu ! Je souhaite le succès à tous !