Partage
  • Partager sur Facebook
  • Partager sur Twitter

return d'un double

la boucle for

Sujet résolu
    13 mai 2011 à 14:09:39

    bonjour

    j'ai une boucle for , je calcule une valeur pour chaque valeur de i , cela ce passe dans une fonction voila mon code
    for (i = 0; i < 10; i++)
                {
                    return (i * 2+98);
                }
    

    je veut obtenir la valeur après chaque valeur de i mais le c# ne me permet pas , il faut que je mets le return après la boucle cela veut dire je vais obtenir la derniere valeur seulement :( que dois_je faire ?

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2011 à 14:14:57

      Bonjour,

      Au hasard ( ;) ), créer un tableau, le remplir dans ta boucle et le renvoyer en fin de boucle (bon c'est pas la seule solution mais celle-ci devrait suffire).

      Quant au code, ça devrait pas être trop compliqué à trouver, et au besoin tu peux lire le tutoriel C# de Narvath

      Cordialement !
      • Partager sur Facebook
      • Partager sur Twitter
      Censément, quelqu'un de sensé est censé s'exprimer sensément.
        13 mai 2011 à 14:17:35

        Citation : Sehnsucht

        Bonjour,

        Au hasard ( ;) ), créer un tableau, le remplir dans ta boucle et le renvoyer en fin de boucle (bon c'est pas la seule solution mais celle-ci devrait suffire).

        Quant au code, ça devrait pas être trop compliqué à trouver, et au besoin tu peux lire le tutoriel C# de Narvath

        Cordialement !


        est ce qu'un return TAB; veut dire qu'il va afficher toute les valeurs de mon tableau quelque soit la longueur de mon tableau et mon tableau contient des valeur double donc est ce que c'est return tab []??
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2011 à 14:29:02

          return sert à terminer la fonction courante et renvoyant une valeur, pas à calculer un ensemble de valeurs avec une boucle for. ;)

          Pinailleur: "en fait, avec un yield return, on pourrait... :D "
          Orwell: "chut, je sais, mais va pas l'embrouiller encore plus :-° "
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2011 à 14:38:41

            Citation : Orwell

            return sert à terminer la fonction courante et renvoyant une valeur, pas à calculer un ensemble de valeurs avec une boucle for. ;)

            Pinailleur: "en fait, avec un yield return, on pourrait... :D "
            Orwell: "chut, je sais, mais va pas l'embrouiller encore plus :-° "
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              13 mai 2011 à 15:02:21

              Il faut utiliser un IEnumerable<T> comme type de retour :
              public IEnumerable<double> GetNumbers()
              {
                  for (int i = 0; i < 10; i++)
                  {
                      yield return ( i*2 + 98);
                  }
              }
              

              Note que si tu veux quitter la méthode avant d'avoir terminé, utilise l'instruction yield break.

              Fais attention par contre, malgré ce que VS te dit le code suivant crashe :
              double[] myArray = (double[]) GetNumbers();
              

              Il faut utiliser LINQ et sa méthode ToArray :
              double[] myArray = GetNumbers().ToArray();
              
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2011 à 15:16:28

                Citation : Aethec

                Il faut utiliser un IEnumerable<T> comme type de retour :

                public IEnumerable<double> GetNumbers()
                {
                    for (int i = 0; i < 10; i++)
                    {
                        yield return ( i*2 + 98);
                    }
                }
                


                Note que si tu veux quitter la méthode avant d'avoir terminé, utilise l'instruction yield break.


                Fais attention par contre, malgré ce que VS te dit le code suivant crashe :

                double[] myArray = (double[]) GetNumbers();
                


                Il faut utiliser LINQ et sa méthode ToArray :

                double[] myArray = GetNumbers().ToArray();
                

                j'arrive pas a mettre en place votre code
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  13 mai 2011 à 15:40:41

                  Mets ma méthode dans ta classe, puis appelle-la en créant un nouveau tableau de double.
                  Ensuite, itére sur ce tableau avec un foreach et fais ce que tu veux.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2011 à 16:04:19

                    Citation : Aethec

                    Mets ma méthode dans ta classe, puis appelle-la en créant un nouveau tableau de double.
                    Ensuite, itére sur ce tableau avec un foreach et fais ce que tu veux.


                    ça fonctionne très bien , merci , vous m'avez sauvez la vie :) , merci pour tout les intervenants dans ce sujets
                    • Partager sur Facebook
                    • Partager sur Twitter

                    return d'un double

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown