Tableau et test logique
Froyorst
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'aimerais faire une boucle qui vérifie une condition pour chaque élément du tableau.
Jusque la ça semble simple
Mon code suit donc la structure suivante :
ça semble facile, mais mon "compilateur" ne l'accepte pas. Sur la ligne if (Dil_Vial[Numero_Vial] == 2) j'ai une erreur
error 1002 : syntax error before symbol '=='
error 1002 : syntax error before symbol ')'
error 1002 : syntax error before symbol ')'
error 1002 : syntax error before symbol 'Unspecified token'
error 1002 : syntax error before symbol 'Unspecified token'
error 1002 : syntax error before symbol ';'
J'ai réussi à contourner via le code suivant :
Donc il apparait clairement que mon soucis est la manière dont je donne le tableau dans ma fonction if.
Le truc c'est que j’apprends sur le tas. J'ai contourné mon problème mais j'ai l'impression de passer à coté de quelque chose.
Comment faire pour éviter la petite pirouette supplémentaire ?
Merci de vos réponsesfox 83.0
J'aimerais faire une boucle qui vérifie une condition pour chaque élément du tableau.
Jusque la ça semble simple
Mon code suit donc la structure suivante :
if (Dil_Vial[Numero_Vial] == 2) { if (Numero_Rotation == 0 || 2 || 4 || 7) { SeqRemoveAt(ML_STAR.Dil_Maintenance,Sequence_Suppr) } }
ça semble facile, mais mon "compilateur" ne l'accepte pas. Sur la ligne if (Dil_Vial[Numero_Vial] == 2) j'ai une erreur
error 1002 : syntax error before symbol '=='
error 1002 : syntax error before symbol ')'
error 1002 : syntax error before symbol ')'
error 1002 : syntax error before symbol 'Unspecified token'
error 1002 : syntax error before symbol 'Unspecified token'
error 1002 : syntax error before symbol ';'
J'ai réussi à contourner via le code suivant :
i = Dil_Vial[Numero_Vial]; if (i == 2) { if (Numero_Rotation == 0 || 2 || 4 || 7) { SeqRemoveAt(ML_STAR.Dil_Maintenance,Sequence_Suppr); } }
Donc il apparait clairement que mon soucis est la manière dont je donne le tableau dans ma fonction if.
Le truc c'est que j’apprends sur le tas. J'ai contourné mon problème mais j'ai l'impression de passer à coté de quelque chose.
Comment faire pour éviter la petite pirouette supplémentaire ?
Merci de vos réponsesfox 83.0
A voir également:
- Tableau et test logique
- Test performance pc - Guide
- Tableau word - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Tableau ascii - Guide
- Test steam deck oled - Guide
5 réponses
Bonjour Froyorst,
Je me trompe peut-être, mais ton test, ce ne serait pas plutôt:
???
Je me trompe peut-être, mais ton test, ce ne serait pas plutôt:
if (Numero_Rotation == 0 || Numero_Rotation == 2 || Numero_Rotation == 4 || Numero_Rotation == 7)
???
Ok, je voulais m'en assurer, donc l'instruction ne signifie pas:
si Numero_Rotation égal 0 ou bien égal 2 ou bien égal 4 ou bien égal 7 ....
C'est n'est pas ça le souci (sans s à la fin), mais il fallait bien s'assurer qu'il n'y avait pas déjà un problème à ce niveau ..
si Numero_Rotation égal 0 ou bien égal 2 ou bien égal 4 ou bien égal 7 ....
C'est n'est pas ça le souci (sans s à la fin), mais il fallait bien s'assurer qu'il n'y avait pas déjà un problème à ce niveau ..
Salut,
Phil_1857 a raison de t'alerter sur ton code
Cela ne déclenche pas d'erreur de compilation, mais fonctionne ainsi : la partie de droite
Il manque aussi un point virgule à la fin de ta ligne 5 dans le code qui te renvoie des erreurs. Cette erreur, en revanche, devrait renvoyer une erreur de syntaxe bloquant la compilation (point-virgule que tu as mis, par contre, dans le code qui est réputé "marcher").
Pour le reste, on n'a probablement pas assez d'éléments pour hasarder d'autres réponses.
Dal
Phil_1857 a raison de t'alerter sur ton code
if (Numero_Rotation == 0 || 2 || 4 || 7), qui ne fait pas ce que tu penses.
Cela ne déclenche pas d'erreur de compilation, mais fonctionne ainsi : la partie de droite
0 || 2 || 4 || 7est évaluée (à 1) et comparée à la partie de gauche (Numero_Rotation) et ce n'est pas ce que tu veux faire. Cette erreur n'est donc pas à l'origine de ton erreur de compilation, mais tu as intérêt à la corriger.
Il manque aussi un point virgule à la fin de ta ligne 5 dans le code qui te renvoie des erreurs. Cette erreur, en revanche, devrait renvoyer une erreur de syntaxe bloquant la compilation (point-virgule que tu as mis, par contre, dans le code qui est réputé "marcher").
Pour le reste, on n'a probablement pas assez d'éléments pour hasarder d'autres réponses.
Dal
Bonjour Dal,
Effectivement, et c'est valable dans tous les langages de programmation
Je voulais être sûr que Froyorst faisait ça en toute conscience
Mais même maintenant, on n'en est pas encore sûr ...
Effectivement, et c'est valable dans tous les langages de programmation
Je voulais être sûr que Froyorst faisait ça en toute conscience
Mais même maintenant, on n'en est pas encore sûr ...
En lisant https://forums.commentcamarche.net/forum/affich-36958667-tableau-et-test-logique#2 je n'ai pas de doutes que Froyorst ne veut pas faire cela :-)
C'est une erreur, même si elle ne génère pas de blocage à la compilation.
Ce qui devrait générer une erreur à la compilation, par contre, est l'absence de ; à la fin de la ligne appelant SeqRemoveAt()
Ensuite, on ne sait pas ce que sont des différents objets ou leurs types. Il pourrait y avoir d'autres erreurs.
C'est une erreur, même si elle ne génère pas de blocage à la compilation.
Ce qui devrait générer une erreur à la compilation, par contre, est l'absence de ; à la fin de la ligne appelant SeqRemoveAt()
Ensuite, on ne sait pas ce que sont des différents objets ou leurs types. Il pourrait y avoir d'autres erreurs.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non je ne pense pas.
n'est-il pas l'équivalent de
Mais de toute façon ce n'est pas ça le souci, c'est vraiment lié à la ligne