Bonsoir à tous !

J'aurais besoin de votre aide sur cet exercice.

Donc premièrement, je demande à l'utilisateur d'introduire des valeurs dans le tableau. Jusque-là, y'a pas de soucis.
Je dois demander à l'utilisateur quelle valeur il souhaite supprimer.

Alors moi j'ai remplacé les positions où ces valeurs s'y retrouvent par les positions du tableau +1.

En gros, si l'utilisateur tape :
6 5 4 3 2 1 0 (0 arrête l'instruction)

Et puis l'utilisateur souhaite supprimer la valeur "5" du tableau.

Il est censé voir l'impression du tableau comme ceci :
6 4 3 2 1

Mais je voulais savoir s'il y avait pas un autre moyen plus optimal que celui-ci.

Nous n'avons le droit d'utiliser que des "if, for, while".

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
package ex6;
 
import java.util.Scanner;
 
public class Ex6 {
 
    public static void main(String[] args) {
 
        int valeurlue, i, j, k;
        int tab[] = new int[50];
 
        i = 0;
 
        Scanner lectureClavier = new Scanner(System.in);
 
        System.out.println("Introduisez des valeurs entières positives ou négatives !");
        System.out.println("Si une valeur nulle est introduite, arrêt prématuré !");
 
        valeurlue = lectureClavier.nextInt();
 
        while ((valeurlue != 0)&&(i<50))
        {
            tab[i] = valeurlue;
            i = i + 1;
 
            if (i<50)
            {
                valeurlue = lectureClavier.nextInt();
            }
        }
 
        System.out.println("Saisissez une valeur, toutes ses occurrences seront supprimées !");
        valeurlue = lectureClavier.nextInt();
 
        if (valeurlue != 0)
        {
            for (j=0 ; j<=i-1 ; j++)
            {
                while (tab[j] == valeurlue)
                {
                    for (k=j; k<=i-1 ; k++)
                    {
                        tab[k] = tab[k+1];
                    }
                    i = i-1;
                }
            }
        }
 
        if ((valeurlue == 0)||(compteur == i))
        {
            System.out.println("Le tableau ne comportait pas de valeurs similaires à celle entrée par l'utilisateur !");
        }
 
 
        System.out.println("Impression du tableau : ");
 
        for (j=0 ; j<=i-1 ; j++)
        {
            System.out.println(tab[j]);          
        }       
    }  
}
Merci à vous.