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

Langage Perl Discussion :

Boucle for probleme


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2012
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Boucle for probleme
    Bonjour

    Debutant en Perl. Je voudrais savoir comment on peut recuperer la valeur a l'indice i d'un tableau qui est dans un for. Je ne sais meme pas si c'est clair ce que je raconte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    for (my $i=1;@line2 != 0;$i+=2)
    	{	
    	if ($line2[$i] != "no_prj")
    		{
    			@line3=($line2[$i-1],@line3);
    		}
     
    	}
    En gros je n'arrive pas a recuperer $line2[i] car il me dit que ma chaine est vide alors qu'il yest sense avoir quelque chose .

    Merci d'avance

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Dans ta boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (my $i=1;@line2 != 0;$i+=2)
    la condition d'arrêt ";@line2 != 0;" est sans doute fausse: en gros, elle dit: continue tant que le nombre d'éléments du tableau @ligne2 est différent de 0. Comme tu ne modifies pas le tableau @line2, de deux choses l'une: soit le tableau est vide au début, et la boucle ne s'exécutera pas; soit il n'est pas vide, et la boucle continuera à boucler pour toujours.

    J'imagine que tu veux peut-être plutôt quelque chose comme: "$line2[$i] != 0;". Mais même alors, le code est toujours erroné, car comme rien ne modifie $line2[$i], tu auras de nouveau soit aucune exécution de la boucle, soit une boucle infinie.

    Peut-être pourrais-tu expliquer précisément ce que tu veux faire pour que l'on puisse t'aider plus efficacement.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2012
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Je voudrais en quelque sorte lire ma boucle sans préalable condition

    Merci de ton aide en tout cas .

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 21
    Points
    21
    Par défaut
    Pas mal d'erreurs j'ai l'impression :
    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
     
    # Ça devrais plutôt être à mon avis : 
    # for(my $i = 1; exists $line2[$i]; $i += 2)
     
    for (my $i=1;@line2 != 0;$i+=2)
    {	
           # Il faut utiliser l'opérateur 'ne' pour comparer 2 chaines :
           # if($line2[$i] ne "no_prj")
    	if ($line2[$i] != "no_prj")
    	{
                    # ensuite ici, ça sera à mon avis plus joli et plus efficace de faire :
                    # unshift @line3, $line2[$i-1];
    		@line3=($line2[$i-1],@line3);
    	}
     
    }

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nico38100 Voir le message
    Je voudrais en quelque sorte lire ma boucle sans préalable condition .
    Il ne s'agit pas d'une condition préalable, mais d'une condition d'arrêt, qui arrête la boucle quand elle devient fausse. Si tu n'en mets pas, tu auras une boucle sans fin. Mais évidemment, si elle est fausse dès le début, ta boucle ne s'exécutera même pas une fois.

    Il va vraiment falloir que tu explique ce que tu veux faire et ce que contiennent tes variables avant d'entrer dans la boucle (ou du moins ce que tu penses qu'elles contiennent) pour l'on puisse d'aider. Là, je ne comprends pas ton code.

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Le problème est résolu ?

Discussions similaires

  1. Probleme boucle for
    Par griese dans le forum Linux
    Réponses: 4
    Dernier message: 06/12/2006, 15h39
  2. [Tableaux] Probleme de boucle for
    Par keumlebarbare dans le forum Langage
    Réponses: 12
    Dernier message: 20/09/2006, 15h29
  3. probleme dans un boucle for
    Par accoustic dans le forum Delphi
    Réponses: 2
    Dernier message: 26/08/2006, 11h45
  4. Ksh, problème avec une simple boucle for
    Par herzleid dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2006, 15h45
  5. [C#] Probleme de boucle for et random
    Par Freeman166 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/01/2005, 15h34

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