Erreurs, bugs, questions - page 1654
![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
Le message d'erreur est toujours correct.
Au départ, je n'y ai pas prêté beaucoup d'attention, mais après l'avoir revu, il y a des arguments qui montrent que ce n'est pas correct. Et voici pourquoi : plus loin est le code conditionnel
Ce qu'il faut mettre après while(true) {} se résume à ceci : "Nous ne serons jamais là de toute façon... return n'est nécessaire que formellement - pour que le compilateur dise OK... Donc - mettons une valeur aléatoire ici - return Random() ;".
Après un certain temps, nous avons fait quelques changements dans le code et maintenant nous avons besoin d'ajouter une pause dans le while.
Dans ce cas, le compilateur dira : "OK. Il y a du code après while(true) {}, ce qui signifie que le cas 'break' a déjà été prévu plus tôt et qu'il doit y avoir le même 'break' dans cet ensemble de lignes. Toutes les valeurs de retour étaient déjà prévues à l'époque - ne vous donnez pas la peine !
Et à la fin, nous obtiendrons une valeur aléatoire.
Mais s'il n'y avait pas de chaîne (*) au début, le compilateur dirait : "Error : No...". ...pas moyen... il n'y avait pas de rupture avant et nous devons retourner quelque chose de délibéré".
Il s'avère que la chaîne (*) n'est pas seulement excessive, mais qu'elle augmente également la probabilité d'erreurs difficiles à trouver.
Au début, je n'y ai pas prêté beaucoup d'attention, mais en le revoyant - il y avait un argument selon lequel ce n'était pas bien...
De plus, dans votre exemple, vous devriez normalement générer un avertissement "code inaccessible". Studio ne donne pas non plus un tel avertissement, mais le compilateur Borland le faisait, si je me souviens bien.
Bonne mémoire.
Et Borland ne donne pas d'avertissements pour des broutilles, ce qui prouve une fois de plus mes arguments...
Et Borland n'émet pas d'avertissement pour rien...
Je ne suis pas d'accord avec vous. :) Il me semble que c'est une bagatelle indigne d'attention. Il suffit de brancher return(0) et de continuer.
De plus, en MCL, il est préférable de toujours utiliser while( !IsStopped()) plutôt que while(true), auquel cas le retour après la boucle est déjà obligatoire.
Dans mon éditeur, la liste des méthodes disponibles ne descend pas après le point. C'est très gênant pour moi. Comment puis-je le réparer ? Sur l'ancienne version, elle s'abaissait.
Que pensez-vous de ça ?
Que pensez-vous de ça ?
peut-être que c'est le constructeur de la structure ? il est là de toute façon