Renvoyer char

Résolu
helloworld95 -  
 helloworld95 -
Bonjour,

J'aimerai renvoyer le caractère que j'ai supprimer de ma table. Mais la méthode ne fonctionne pas

Voici mon code

Merci d'avance pour votre aide.

	public char supprime(int rang){
		char carac = 0;
		for (int i = 0 ; i < taille; i++){
			if (rang == table[i]){
				carac = table[i];
				for (int j = i+1; j > taille; j++){
					table[j-1] = table[j];
				}
			}
		}
		taille--;
		return carac;
	}


2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    if (rang == table[i])
    va comparer ton rang avec la valeur dans le tableau, c'est à dire le char que tu veux retourner, ne voudrais tu pas plutôt faire
    if (rang == i)
    pour supprimer le caractère situé au rang donné ?
    Dans ce cas ta boucle for sur les i, ainsi que ton if, ne servent à rien puisque tu peux directement aller au bon rang vu que tu le connais.

    Et attention, dans ta boucle sur les j, tu fais j > taille ce qui est faux dès le départ puisque j = i+1.

    public char supprime(int rang) {
        char carac = table[rang];
        taille--;
        for (int i = rang; i < taille; i++) {
            table[i] = table[i+1];
        }
        return carac;
    }
    0
    1. helloworld95
       
      Merci c'est beaucoup plus clair comme ça !
      0
  2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    J'ai un souci de compréhension de ton code :
    De ce que je pense que tu veux faire :
    - Tu appelles ta fonction pour retirer l'item d'index "rang" dans ta table "table" et tu compacte la table pour éviter le trou.
    De ce que je constate :
    - Tu appelles ta fonction pour retirer l'item "rang" de ta table et tu compactes ensuite.

    Si Rang est l'index de l'item à retirer, ta fonction est fausse.
    Si Rang est l'item à retirer alors ru n'as qu'à retourner "rang" ou au pire, faire un "break" avant de sortir de ton "if".
    0
    1. helloworld95
       
      Effectivement rang est l'index du caractère à renvoyer.
      0