Est-il possible d'éviter de nombreux "ou" (||) dans les conditions entraînant la même action ? - page 8
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Dans mes programmes, s'il y a beaucoup de ifs, j'utilise cette construction, avec les conditions qui donneront le plus souvent faux en premier lieu :
Et si j'ai besoin de vérifier un grand nombre de if-ops, j'utilise cette méthode :Non, ça ne marche pas comme ça. Premièrement, il doit y avoir quelque chose après if(), au moins un simple point-virgule (c'est-à-dire un opérateur vide) . Deuxièmement, à quel "si" votre autre opérateur est-il censé appartenir ? S'il s'agit uniquement de la dernière (comme vous l'avez écrit), alors l'action ne sera exécutée que si la condition D est vraie, à condition que A, B et C soient fausses. Il est toujours conseillé de placer des accolades pour que la logique soit claire.
Si ma mise en évidence est possible, alors c'est une bonne idée de le faire de cette façon :
Comment ? Possible ? -------------------------- Je l'ai vérifié dans le code, le compilateur donne un avertissement ;
';' - point-virgule inattendu C:\Program Files\
Si ça marche, on peut aussi supporter l'avertissement !
Si celle que j'ai mise en évidence est possible, il serait bon de la rendre possible :
Comment ? Possible ? -------------------------- Vérifié dans le code, le compilateur donne un avertissement ;
';' - point-virgule inattendu C:\Program Files\
Si ça marche, on peut aussi supporter l'avertissement !
Merci beaucoup ! Comme c'est facile !
Cependant, j'ai dû placer ce bloc à la fin du début, car return(0) ne laissait rien d'autre fonctionner après lui.
Quelqu'un a-t-il mesuré la vitesse ? )))
Je vais prendre une mesure !
Je l'ai enfin mesuré ! C'est 17,26 ! C'est 10 minutes de plus que le meilleur if() sans astuces en six mois dans le testeur. Désolé, mais on ne peut rien y faire ! Je vais continuer à creuser ! Merci à tous ! Mais il est encore trop tôt pour faire un bilan !
Si celle que j'ai mise en évidence est possible, il serait bon de la rendre possible :
Comment ? Possible ? -------------------------- Vérifié dans le code, le compilateur donne un avertissement ;
';' - point-virgule inattendu C:\Program Files\
Si ça marche, on peut aussi supporter l'avertissement !
Un avertissement est donné au cas où quelqu'un aurait simplement mis une virgule au mauvais endroit(l'opérateur vide ';' n'est pas souvent utilisé). Cette construction fonctionne et est parfaitement légale.
Je vais prendre une mesure !
Mais vous devez vérifier toutes les options. Sinon, vous pourriez vous tromper.
Si celle que j'ai mise en évidence est possible, il serait bon de la rendre telle :
Comment ? Possible ? -------------------------- Vérifié dans le code, le compilateur donne un avertissement ;
';' - point-virgule inattendu C:\Program Files\
Si ça marche, on peut aussi supporter l'avertissement !
Pour rendre les avertissements moins gênants, utilisez : {}
Pour éviter que les avertissements ne vous encombrent les yeux, utilisez {} : {}