Partage
  • Partager sur Facebook
  • Partager sur Twitter

La boucle for.

Mon comilo plante si je n'initialise pas "i "en dehors de l'instruction..

Sujet résolu
    19 novembre 2007 à 19:24:24

    Bonjour,

    J'ai un problème avec la boucle for.

    Voici mon code:
    1. #include <iostream>
    2. using namespace std;
    3. int main(void)
    4. {
    5.         for(i=0; i<10; i++)
    6.         {
    7.             cout << "TEXTE" << endl;
    8.         }
    9.         return 0;
    10. }


    Mon compilateur me dit que je n'ai pas initialiser i. Et pourtant M@téo l'a dit très clairement:
    1. La nouveauté en C++, c'est que vous pouvez déclarer votre 
    2. variable i directement dans l'instruction for. 
    3. Elle sera détruite à la fin de la boucle, 
    4. quand vous n'en aurez plus besoin.


    Je ne voit donc vraiment d'où peut venir l'erreur.
    J'ai pourtant bien créé un projet c++.

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      19 novembre 2007 à 19:25:52

      il te dit pas que i n'est pas initialisé mais quel n'existe pas, où/quel est le type de "i" ?
      • Partager sur Facebook
      • Partager sur Twitter
        19 novembre 2007 à 19:39:41

        Voila ce que dit mon compilateur:
        1. main.cpp:8: error: `i' undeclared (first use this function)
        2. main.cpp:8: error: (Each undeclared identifier is reported only once for each function it appears in.)


        La première ligne je l'ai bien compris mais la deuxième je suis complètement largé.
        Le problème ne vient pas du fait que je n'arrive pas à traduire(je suis arriver à faire une traduction qui je pense est valable) mais même en français je comprends ce que ça veut dire:

        Voila ce que j'ai compris:"chaque identifiant non déclarer est reporter seulement une fois pour chaque fonction dans la quelle il apparaît"
        • Partager sur Facebook
        • Partager sur Twitter
          19 novembre 2007 à 19:44:41

          T'occupe pas de la seconde ligne.
          Résous la première erreur et ça fonctionnerat ;)

          Il te dis que i n'est pas déclarée.
          Déclare la dans le for !
          • Partager sur Facebook
          • Partager sur Twitter
            19 novembre 2007 à 19:47:30

            Slt
            Pour déclarer i dans le for il ne faut pas oublier le int devant comme ceci
            1. for(int i=0;i<10; i++)

            Quand a ton erreur c'est celle qui apparait a chaque fois que le compilo trouve un truc qui n'est pas délarer
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 novembre 2007 à 19:50:12

              Une déclaration se fait toujours comme ça : TYPE nom /* affection si besoin est */ ;
              • Partager sur Facebook
              • Partager sur Twitter
                19 novembre 2007 à 19:54:08

                Voila ce qu'il ya dans le tuto de M@téo:

                1. void maFonction()
                2. {
                3.     /* Plein de code
                4.     ....
                5.     ....
                6.     */
                7.     for (int i = 0 ; i < 10 ; i++) // Déclaration de i
                8.     {
                9.     } // Destruction automatique de i
                10. }


                J'avais zapé le int dans le for avant i.
                Donc en gros faut peut-ètre que j'apprenne à lire.
                Mais ça c'est une autre histoire ;) .

                Merci de votre aide.

                PS: On peut toujours utiliser les stuctures en c++ ?
                • Partager sur Facebook
                • Partager sur Twitter
                  19 novembre 2007 à 20:01:39

                  Citation : roy.666


                  Voila ce que j'ai compris:"chaque identifiant non déclarer est reporter seulement une fois pour chaque fonction dans la quelle il apparaît"


                  oui c'est çà, tu utilises 3 fois la variable inexistante "i" mais il te le dit qu'une fois.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 novembre 2007 à 20:05:56

                    oui les structure en C++ sont plus évoluées qu'en C du fait qu'elles sont des classes par défaut publiques (au lieu de private pour le mot-clé class).

                    exemple de structure simple :
                    1. struct Point
                    2. {
                    3.     double x, y;
                    4. };


                    Tu remarqueras l'extrême ressemblance avec la déclaration d'une classe
                    • Partager sur Facebook
                    • Partager sur Twitter

                    La boucle for.

                    × 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