J'essaie de résumer les multiples de 3 et 5 qui sont inférieurs à 1000 à l'aide de J'ai des contrôleurs configurés pour imprimer avec ce code, je reçois une erreur. P> ici est la solution qui a fonctionné pour moi: p> chaque code>, puis appuyez sur code> pour les stocker tout dans le tableau multiples < / code>. J'essaie d'apprendre à utiliser ces commandes, et je ne veux donc pas utiliser Sélectionnez code> et injecter code>. @Your_Ooutput code> sur une autre page et avez-vous fait cela avec succès avec des problèmes plus simples. J'ai essayé de faire le conditionnel et de le stocker dans div code>: p>
3 Réponses :
Un moyen plus facile de le faire serait comme suit ...
multiples.push(div) if num % 3 == 0 or num % 5 == 0
Vous avez quelques problèmes.
D'abord, vous essayez d'accéder à second, vous devez appuyer sur troisièmement, vous devez vérifier si Je n'ai pas vérifié Le reste de votre logique peut donc y avoir d'autres insectes aussi. p> div code> en dehors du bloc code> bloc code>.
Si vous vouliez vraiment faire cela, ce que vous n'avez pas parce que vous devriez appeler somme code> sur multiples code>, pas div code>, vous auriez besoin de Définissez-le au niveau de la portée de la méthode, puis autorisez le bloc chaque code> pour le modifier. num code> pas DIV code> à multiples code>. p> div code> est vrai avant de passer au tableau. p>
Comme mentionné dans une autre réponse, vous n'avez pas besoin de convertir la gamme en une matrice, mais cela ne casse pas votre programme, et oui, vous pouvez simplifier les choses plus éloignées, par exemple en supprimant la variable de div et à tout faire sur une ligne, mais Si vous aimez avoir la ligne DIV pour la lisibilité, il n'y a rien de mal avec cela non plus.
Vous devez ajouter Même si dans la portée, vous appelez La variable Ceci peut être encore raccourci: p> num code> à multiples code> si num code> est à la fois divisible par 5 code> et 3 code>, pas div code>. C'est parce que div = num% 3 == 0 || Num% 5 == 0 code> est juste true code> ou false code>, l'ajout de divinaire finit par un tableau de valeurs de booléens ( [false, vrai, vrai , ...] code>). @Your_Output = div.sum code> est en dehors de la boucle et de la division n'existe pas là-bas, il est hors de portée. P> @Your_Output = true.sum code> (ou false.sum code>) Obtenir une erreur quand même: nométhoderror code>. / p> div code> n'est pas requise, utilisez simplement son état. Il n'est pas nécessaire de convertir la plage code> code> en un tableau code>. Donc, je suggérerais ce refacteur: p>
J'ai amélioré l'explication
Quelle erreur avez-vous obtenu
Je pense que vous devez définir DIV en dehors de chaque boucle
Qu'est-ce que
rendu code>?Essayez
1000. fois.inject (0) {| m, a | m + = a si (A% 3 == 0 || A% 5 == 0); m} code>Si vous avez résolu le problème dans la question, veuillez le transformer en une réponse automatique en utilisant le formulaire ci-dessous.