IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Boucle "for" dans une boucle "while"


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2006
    Messages : 193
    Par défaut Boucle "for" dans une boucle "while"
    Bonjour,
    j'ai eu un problème en voulant ajouter une boucle for dans une boucle while
    est ce que c'est normal où il s'agit d'une erreur sur mon code ?
    Merci pour vos réponses

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Kei,

    En ce moment, ça pose problème pour te donner une réponse : les boules de cristal sont en grève.

    Plus sérieusement, comment veux-tu qu'on parle de ton code sans le connaître ? En lisant tes pensées pour le lire en même temps ?

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par WhiteTigerZ Voir le message
    est ce que c'est normal
    Non

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2006
    Messages : 193
    Par défaut
    Bonjour,
    @tchize_= Merci pour votre réponse.
    @Droggo : Loool², je croyais que java n'accepte pas les boucles imbriquées (à vrai dire je ne voulais pas admettre que le problème vient de mon code (c'est ente nous:p ) )
    Bon, mon problème est la suivante : je veux faire une application qui permet de trouver une séance de rattrapage pour un enseignant donc si droggo s'absente de son classe le jour "j" à l'heure "x" il faudrait que l'application lui trouve 1 séance de rattrapage.
    les contraintes sont :
    l'emploi du temps de droggo (enseignant)
    l'emploi du temps de la classe à qui il s'est absentée
    +
    une salle libre
    mon algorithme est le suivant :
    j'ai modélisé mon problème en déclarant 2 matrices( initialisées à 0 dès le départ), 1 pour l'emploi du temps de l'enseignant et une pour l'emploi du temps de la classe.En se connectant à la table emploi de mon BD les 0 seront remplacés par 1.
    Rq :
    nombre de ligne de la matrice est de 6 --> du lundi au samedi
    nombre de colonne de la matrice est 9 --> l'horaire : Voir l'image
    Exple :
    si j'enseigne le lundi de 8 a 9hr et samedi de 17h à 18hr
    mat1[0][0]=1 ;
    mat2[5][7]=1;

    Enfin je parcoure mes 2 tableaux dans le cas où mat_enseignant[l][c]=mat_classe[l][c]=0 --> séance de rattrapage trouvée

    j'èspere que vous avez capté ce que j'ai écrit (je sais c'est pas évident XD)
    PS : voir les images
    je vous envoie le code dès que vous auriez assimiler tout ça.
    Merci pour vos réponses )
    Images attachées Images attachées   

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par WhiteTigerZ Voir le message
    je vous envoie le code dès que vous auriez assimiler tout ça.
    Merci pour vos réponses )
    ce qui est dommage car le code et ce qu'il te fait comme problème c'est justement qu'on ta demandé et ce que tu n'a pas fourni....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2006
    Messages : 193
    Par défaut le code :D
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     private void trouverActionPerformed(java.awt.event.ActionEvent evt) {                                        
        Statement ste,ste2;
        connexion_base con ;
        ResultSet res_ens,res_c ;
        int[][] tab1,tab2 ; // j'ai dù les nommée en mat :roll:
        String cl = null  ;
        String type = null ;
        try {
            // Connexion à la base
        con=new connexion_base(); 
        con.connecte();
        ste=con.getStatement();
        ste2=con.getStatement();
     
            // enregistrements des valeurs saisies dans des variables
        String a=id.getText();
        Object x=jour.getSelectedItem();
        String b=x.toString();
        char ch=b.charAt(0);
        String c=debut.getText();
        String d=fin.getText();
    // déclaration des 2 matrices
        tab1=new int[6][8] ;
        tab2=new int[6][8] ;
           // 
          String req2="select * from emploi where code_enseignant='"+a+"' and code_journee='"+ch+"' and h_deb='"+c+"' and h_fin='"+d+"' ";
          res_c=ste2.executeQuery(req2);
           while (res_c.next())
           {
               cl=res_c.getString(2); // désigne le code_classe de la classe à qui 
    // l'enseignant s'est absenté
               type=res_c.getString(5);// désigne le type de cours (TD,cours)
    // pas important pour mon problème !!
              }
          for (int i=0; i<=5; i++) {
             // insertion des zéros dans les 2 matrices : initialisation
           for (int j=0;j<=7;j++){
               tab1[i][j]=0;
               tab2[i][j]=0;
           }
           // insertion dans la matrice enseignant
     
            int h=i+1; 
    // remarque 1 désigne lundi,2 désigne mardi...jusqu'au samedi "6" 
            String hh = Integer.toString(h);
     
           String req="select * from emploi where code_journee='"+hh+"' and code_enseignant='"+a+"' order by h_deb ";
           res_ens=ste.executeQuery(req);
           while (res_ens.next())
           {
     
              String hr_deb=res_ens.getString(6);
              String hr_fin=res_ens.getString(7);
              int h1=Integer.parseInt(hr_deb);
              int h2=Integer.parseInt(hr_fin);
     
              if (h1 <= 12){ h1=h1-7;}
              else {h1=h1-9;};
     
              if (h2 <= 12){ h2=h2-8;}
              else {h2=h2-10;};
              while (h1<=h2)
              { 
                tab1[i][h1]=1 ;
                h1++ ;
     /* le problème se situe ici !!! il ne veut pas faire l'insertion c'est comme s'il refuse l'insertion, j'ai du supprimer l'instruction d'insertion et la remplaçant par 1 instruction d'affiche System.out.print("test"); afin de s'assurer que la boucle tourne bien (ca marche ) */
              }
     
             affiche(tab1,h1,h2);
     
              };
             // insertion dans la matrice classe : PAS IMPORTANT le même principe // que celui de la matrice enseignant ne pas VOIR
              /* 
                  String req_cl = "select * from emploi where code_journee='" + hh + "' and code_classe='" + cl + "' order by h_deb ";
              res_c=ste2.executeQuery(req_cl);
               while (res_c.next())
           {
              String hr_deb=res_c.getString(6);
              String hr_fin=res_c.getString(7);
              int h1=Integer.parseInt(hr_deb);
              int h2=Integer.parseInt(hr_fin);
              
              if (h1 <= 12){ h1=h1-7;}
              else {h1=h1-9;};
     
              if (h2 <= 12){ h2=h2-8;}
              else {h2=h2-10;};
     
            
           }*/
     
     
     
     
            }
        }catch (SQLException ex){JOptionPane.showInternalMessageDialog(getContentPane(),ex.getMessage());}
        }

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    quelques remarques:
    1) ton premier while est curieux. Tu ne prend que la dernière ligne.Je suppose qu'il n'y en a qu'une seule. Le code devrais donc être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          String req2="select * from emploi where code_enseignant='"+a+"' and code_journee='"+ch+"' and h_deb='"+c+"' and h_fin='"+d+"' ";
     
          res_c=ste2.executeQuery(req2); 
           if (res_c.next())
           {
               cl=res_c.getString(2); // cl désigne le code de la classe
               type=res_c.getString(5); // type désigne type de cours
              } else {
           // erreur, a traiter
          }
    2) tu libère pas tes ressources (mais bon, on va partir de la supposition "code pas fini")
    3) dans ta dernière boucle tu ne met pas à jour la matrice
    4) quel est ton problème? Le code de comparaison que tu mentionnait plus haut n'apparait nulle part dans ton code

    et pitié, un effort pour avoir une indentation cohérente?

Discussions similaires

  1. [Batch] Boucle for imbriquee dans une boucle if qui refuse de fonctionner
    Par Egan69 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 27/06/2013, 19h30
  2. Réponses: 2
    Dernier message: 23/03/2013, 00h42
  3. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34
  4. Réponses: 3
    Dernier message: 06/07/2004, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo