Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle FOR

Sujet résolu
    2 janvier 2009 à 16:28:42

    bonjour,
    en faite je sais pas pour quoi j'arrive copie le contenu d'un tableau de caractère dans un autre tableau de caractète avec l'jout de caractère blanc et la suppression de certain d'autre,
    voici mon code:
    taille : c'est la taille de la chaine1.
    z variable initialisé a 0.
    for(int v=0;v<taille;v++){/*for*/
    			if((chaine1[v]=='+')||(chaine1[v]=='-')||(chaine1[v]==',')||(chaine1[v]==';')||(chaine1[v]=='/')
    			||(chaine1[v]=='*')||(chaine1[v]=='(')||(chaine1[v]==')')||(chaine1[v]=='='))
    			             {chaine2[z]=' '; chaine2[z+1]=chaine1[v]; chaine2[z+2]=' '; z++;}
    			else
    			    if(chaine1[v]=='{'){for(;(v<taille)&&(chaine1[v]!='}');v++);
    			                        if(v>taille) System.out.println("votre commentaire lui manque '}'");}
    			   else
    				   if((chaine1[v]==':')&&(chaine1[v+1]=='=')){chaine2[z]=' ';chaine2[z+1]=':';chaine2[z+2]='=';chaine2[z+3]=' ';z++;}
    				   else
    					   if((chaine1[v]=='<')&&((chaine1[v+1]=='=')||(chaine1[v+1]=='>'))){chaine2[z]=' ';chaine2[z+1]=chaine1[v];chaine2[z+2]=chaine1[v+1];chaine2[z+3]=' ';z++;}
    					   else
    						   if((chaine1[v]=='<')&&((chaine1[v+1]!='=')||(chaine1[v+1]!='>'))){chaine2[z]=' ';chaine2[z+1]=chaine1[v];z++;}
    						   else
    							   if((chaine1[v]=='>')&&(chaine1[v+1]=='=')){chaine2[z]=' ';chaine2[z+1]=chaine1[v];chaine2[z+2]=chaine1[v+1];chaine2[z+3]=' ';z++;}
    							   else
    								   if((chaine1[v]=='>')&&(chaine1[v+1]!='=')){chaine2[z]=' ';chaine2[z+1]=chaine1[v];z++;}
    								   else {chaine2[z]=chaine1[v];z++;}
    		      
    	/*for*/	}
    


    ma boucle récupère le contenu de la table chaine1 seulement dans la dernière condition.
    aidez moi svp

    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2009 à 17:50:59

      Bonjour à toi :)

      Déjà, je pense qu'il y a un problème au niveau de ta boucle.
      Prenons un exemple : Ton 1er caractère est un "+", v = 0, z = 0.
      Alors tu vas voir dans chaine2[0] et tu le rends égal à " ", chaine2[1] = "+", chaine2[2] = " ", et finalement v = 1 et z = 1.

      Jusqu'ici aucun problème. Ton deuxième caractère est également un "+"
      Alors comme z = 1, ton chaine2[1] va être égal à " " alors qu'il était auparavant égal à "+" !
      Tu te retrouves avec une ribambelle d'espaces inutiles :p

      Aussi quand tu écris ton code, fais-le respirer un peu.
      Imagine que tu retravailles dessus 1an plus tard, tu mettrais pas mal de temps avant de comprendre quoi que ce soit !
      J'espère t'avoir aidé ^^
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2009 à 18:08:42

        tout d'abord le titre n'est pas correct ....
        Le titre nous sert a nous y retrouver dans le forum alors essaye d'être plus précis dans ton titre.
        parce que boucle for c'est vaste

        ensuite .... écris en français ... :

        Citation : info.men

        en faite je sais pas pour quoi j'arrive copie le contenu d'un tableau de caractère dans un autre tableau de caractète avec l'jout de caractère blanc et la suppression de certain d'autre,


        incompréhensible ....

        Citation : info.men

        je sais pas pour quoi j'arrive copie le contenu d'un tableau



        ben si t'y arrive tans mieux pour toi °_0

        Citation : info.men

        avec l'jout de caractère blanc et la suppression de certain d'autre,



        hein °_0 tien compris -_-'



        à la ligne 4 de ton code :
        {chaine2[z]=' '; chaine2[z+1]=chaine1[v]; chaine2[z+2]=' '; z++;}
        il y'a une erreur ... Z+2 sera réinscrit a la boucle suivante ... donc le ' ' que tu as mis dedans va être supprimé et remplacé :)..
        pareil à a peu près chaque "if" ou il y'a un +2 en faites ...

        autre chose ... a la fin de chaque if tu fais z++;
        pourquoi ne pas simplement le mettre à la fin de la boucle for


        je vais lire ton code ... mais tu ferais mieux d'éditer ton premier message -_-' parce que là °_0
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2009 à 18:43:09

          je vous remerci ,c la honte pour moi ,j'ai meme pas remarqué qu'il falait augmenté la variable z plus qu'une fois, en plus meme chose pour la variable v quand je copie deux caractères a la fois, merci et déselé pour le dérangement.
          • Partager sur Facebook
          • Partager sur Twitter

          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