Partage
  • Partager sur Facebook
  • Partager sur Twitter

portée de variables

Sujet résolu
    27 août 2016 à 16:48:08

     for (int i = 0; i <= a; i++){
           float sousTotalHT = 0;
           sousTotalHT = sousTotalHT + quantiteefl;}
    
            float rem2 = sousTotalHT - remisefl;
           
           


    Voici mon code. La variable sousTotalHT est inconnue car présente dans une boucle donc sa portée est limitée. Comment faire pour qu'elle soit reconnue or de la boucle ?

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      27 août 2016 à 16:58:26

      Bonjour.

      Et bien la déclarer dans le bloc parent, c'est à dire avant ton for.

      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        27 août 2016 à 17:19:31

        ou, mais elle n'aura pas la même valeur. C'est comme pour un a. Si je déclare int a = 0 en dehors de la boucle est fait a++ à l'intérieure de la boucle, une fois sorti a vaudra toujours 0... Et c'est là le problème de mon programme je pense

        -
        Edité par mathias13 27 août 2016 à 17:28:11

        • Partager sur Facebook
        • Partager sur Twitter
          27 août 2016 à 17:35:58

          Salut,

          non a ne vaudra pas 0. Il aura la dernière valeur affecté à la fin de la boucle.

          Exemple :

          int a = 0;
          for (int i = 0; i < 10; i++)
             a = a+2;
          // à la fin de la boucle a vaut 20
          System.out.println(a); // écrit 20



          • Partager sur Facebook
          • Partager sur Twitter
          Cordialement, Fulash
            27 août 2016 à 17:40:34

            Non, mais vous comprenez pas. J'ai une premiere boucle qui débute avec un a++. ensuite on sort de la boucle.

            Puis on a une seconde boucle, cette fois for, ou i doit être inférieur ou égal à a. Mais cette boucle ne reconnaît pas a. Et si j'initialise a en dehors de la première boucle, elle vaudra toujours 0.

            • Partager sur Facebook
            • Partager sur Twitter
              28 août 2016 à 9:49:07

              Hello,

              float sousTotalHT = 0;
              for (int i = 0; i <= a; i++){
                    sousTotalHT = 0;
                    sousTotalHT = sousTotalHT + quantiteefl;
              } float rem2 = sousTotalHT - remisefl;

              ?

              • Partager sur Facebook
              • Partager sur Twitter
                28 août 2016 à 10:54:03

                Le code à légèrement changé. Les noms de variables sont plus explicite. Mais ca ne règle pas mon problème avec la variable a...
                • Partager sur Facebook
                • Partager sur Twitter
                  28 août 2016 à 11:23:01

                  vu que personne ne comprend exactement ce que tu veux faire, il faudrait montrer plus de code, expliquer ce que tu cherches à calculer, bref, nous donner plus d'info
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 août 2016 à 11:43:46

                      do {
                     int a = 0;
                              a++;
                            info.Afficher();
                        
                        float prixUTfl = Float.parseFloat(info.getPrixUT());
                            float quantiteefl = Float.parseFloat(info.getquantitee());  
                             float prixHT = prixUTfl * quantiteefl;
                             float remisefl = Float.parseFloat(info.getremise());
                            String essaiAsString = String.valueOf(prixHT);
                           
                           
                      
                     tableau.addCell(info.getTitre());
                        tableau.addCell(info.getquantitee());
                        tableau.addCell(info.getPrixUT());
                        tableau.addCell(essaiAsString);
                        
                        System.out.print("Ajouter un article ? 0 = non, 1 = oui");
                        choix = LectureClavier.nextByte();
                        
                      
                        } while(choix == 1);
                       
                          
                        
                        document.add(tableau);
                        
                            
                    PdfPTable tableau2 = new PdfPTable(2);
                    tableau2.setWidths(new int[]{30,20});
                     tableau2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                       
                       tableau2.setWidthPercentage(40);
                       
                       
                    
                        
                    
                          float prixUTfl = Float.parseFloat(info.getPrixUT());
                            float quantiteefl = Float.parseFloat(info.getquantitee());  
                             float prixHT = prixUTfl * quantiteefl;
                             float remisefl = Float.parseFloat(info.getremise());  
                             float sousTotalHT = 0;
                             for (int i = 0; i <= a; i++) {
                              sousTotalHT = prixHT * sousTotalHT;}
                         String sthtAsString = String.valueOf(sousTotalHT);
                         float totalHt = sousTotalHT - remisefl;
                         String thtAsString = String.valueOf(totalHt);


                    Voilà une partie de mon code. Vous voyez la variable 'a', initialiser dans la première boucle. ce que je veux, c'est récupérer sa valeur après incrémentation dans la boucle for.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 août 2016 à 13:38:43

                      sortir la déclaration de 'a' de ta boucle do while?

                      int a;
                      do {
                      a = 0;
                      a++;
                              info.Afficher();
                           
                          float prixUTfl = Float.parseFloat(info.getPrixUT());
                              float quantiteefl = Float.parseFloat(info.getquantitee()); 
                               float prixHT = prixUTfl * quantiteefl;
                               float remisefl = Float.parseFloat(info.getremise());
                              String essaiAsString = String.valueOf(prixHT);
                              
                              
                         
                       tableau.addCell(info.getTitre());
                          tableau.addCell(info.getquantitee());
                          tableau.addCell(info.getPrixUT());
                          tableau.addCell(essaiAsString);
                           
                          System.out.print("Ajouter un article ? 0 = non, 1 = oui");
                          choix = LectureClavier.nextByte();
                           
                         
                          } while(choix == 1);
                          
                             
                           
                          document.add(tableau);
                           
                               
                      PdfPTable tableau2 = new PdfPTable(2);
                      tableau2.setWidths(new int[]{30,20});
                       tableau2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                          
                         tableau2.setWidthPercentage(40);
                          
                          
                       
                           
                       
                            float prixUTfl = Float.parseFloat(info.getPrixUT());
                              float quantiteefl = Float.parseFloat(info.getquantitee()); 
                               float prixHT = prixUTfl * quantiteefl;
                               float remisefl = Float.parseFloat(info.getremise()); 
                               float sousTotalHT = 0;
                               for (int i = 0; i <= a; i++) {
                                sousTotalHT = prixHT * sousTotalHT;}
                           String sthtAsString = String.valueOf(sousTotalHT);
                           float totalHt = sousTotalHT - remisefl;
                           String thtAsString = String.valueOf(totalHt);



                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 août 2016 à 15:34:10

                        Oui, ça marche maintenant ! Merci beaucoup !

                        • Partager sur Facebook
                        • Partager sur Twitter

                        portée de variables

                        × 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