Comment ignorer le dernier chiffre saisi ?
Salut,
J'ai un programme qui doit ""lire des valeurs comprises entre 10 et 30 et affiche ensuite les trois valeurs les plus petites, par ordre croissant. Le nombre de saisit doit être au moins 3 et se termine dès que la valeur introduite est égale à 0"
Je suis coincé sur la partie ou le programme se termine en saisissant 0, il ne doit pas prendre en considération la valeur zero autrement la valeur la plus petite sera toujours zero.
Est-ce que quelqu'un a une petite idée comment faire ? Ci-dessous le code source:
Code:
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
| import ch.comem.cours.ap.WinConsole;
public class Exercice3
{
static final int min = 10;
static final int max = 60;
static int valeur;
static int valeurMin1;
static int valeurMin2;
static int valeurMin3;
public static void main(String[] args)
{
saisit();
tri();
}
// saisit utilisateur
public static void saisit()
{
int compteur = 1;
do{
valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
valeurMin1 = valeur;
valeurMin2 = valeur;
valeurMin3 = valeur;
if(valeur != 0 && (valeur < 10 || valeur > 60))
{
do{
WinConsole.writeLine("Nombre faux ! Recommencez !");
valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
}while(valeur < 10 || valeur > 60);
}
else if(compteur <= 3 && valeur == 0)
{
do{
WinConsole.writeLine("Vous devez introduire au moins 3 nombres ! Recommencez !");
valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
}while(compteur > 3 && valeur == 0);
}
++compteur;
}while(valeur != 0);
}
public static void tri()
{
if(valeur == 0)
{
if(valeur < valeurMin1)
valeurMin1 = valeur;
else if((valeurMin2 - valeurMin1) > (valeurMin3 - valeurMin1))
valeurMin2 = valeur;
else if((valeurMin2 - valeurMin1) < (valeurMin3 - valeurMin1))
valeurMin3 = valeur;
WinConsole.writeLine("Valeur minimal = " + valeurMin1);
WinConsole.writeLine("Valeur minimal = " + valeurMin2);
WinConsole.writeLine("Valeur minimal = " + valeurMin3);
}
}
public static Integer lireInteger(String valeur)
{
WinConsole.write(valeur);
return WinConsole.readInt();
}
} |
Merci !
Cordialement,
David!