Re-saisir si choix mauvais java

Fermé
TheTcha - 13 juin 2011 à 18:52
Maria666 Messages postés 32 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 18 septembre 2011 - 14 juin 2011 à 19:48
Bonjour,

J'ai fais une petite calculette toute simple en java mais j'ai juste un petit soucis.

Voila, tout marche bien sauf que je voudrais ressaisir un chiffre quand le chiffre saisie n'est pas le bon

Voici le code :


public class Calculatrice
{

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{

		int nombre1 ;
		int nombre2 ;
		char operateur ;
		int resultat ;
		
		do
		{
		System.out.print( " Saisir le nombre 1 : " ) ;
		nombre1 = Lire.i() ;
		}
		
		while ((nombre1 != 0) && (nombre1 != 1) && (nombre1 != 2) && (nombre1 != 3));

------Ici je voudrais faire une boucle pour que quand le chiffre saisi n'est pas un 0,1,2 ou 3, on redemande automatiquement la saisi du chiffre jusqu'à qu'il soit bon------------

		do
		{
		System.out.print( " Saisir le nombre 2 : " ) ;
		nombre2 = Lire.i() ;
		}
		
		while ((nombre2 != 0) && (nombre2 != 1) && (nombre2 != 2) && (nombre2 != 3));

		
		do
		{
			System.out.print( " Veuillez saisir un opérateur : " ) ;
			operateur = Lire.c() ;	
		}
		
			while ((operateur != '/') && (operateur != '*') && (operateur != '-') && (operateur != '+'));

			
				switch (operateur)
			
					{
						case '/' :	
							if (nombre2 == 0 )
							{
								System.out.println( " Division impossible " ) ;
							}
							else
							{
							resultat = nombre1 / nombre2  ;
							System.out.println( " Le résultat est de : " + resultat ) ;
							}
							break ;
													
						case '*' :	resultat = nombre1 * nombre2  ;
						System.out.println( " Le résultat est de : " + resultat ) ;
							break ;
							
						case '-' :	resultat = nombre1 - nombre2  ;
						System.out.println( " Le résultat est de : " + resultat ) ;
							break ;
							
						case '+' :	resultat = nombre1 + nombre2  ;
						System.out.println( " Le résultat est de : " + resultat ) ;
							break ;
										
						default :	System.out.println ( " Ce n'est pas un caractere valide " ) ;
				
				}
			}
		}


Voila, j'ai expliqué dans le code ce que je voulais faire. Je ne pense pas que ça soit dur à réaliser mais ej bloque.

Merci d'avance
A voir également:

2 réponses

Utilisateur anonyme
14 juin 2011 à 00:26
Salut,

do
		{
		System.out.print( " Saisir le nombre 1 : " ) ;
		nombre1 = Lire.i() ;
		}
		
		while ((nombre1 != 0) && (nombre1 != 1) && (nombre1 != 2) && (nombre1 != 3));


Cette boucle est correcte, mais à condition que Lire.i(); dont nous ne savons rien fonctionne !!!

Cordialement,

Dan
0
Salut Dan,

La classe Lire fonctionne correctement tout comme le programme dont ta le code mais ce que je voudrais faire, c'est rajouter une condition que si ce n'est pas le chiffre 0,1,2 ou 3 qui est rentré, alors une phrase du style " Le chiffre n'est pas correct, veuillez saisir un autre chiffre ".

La fonction i retourne un entier.

Merci je suis disponible pour d'autres questions.
0
Utilisateur anonyme
14 juin 2011 à 18:31
Salut,

Quand tu entres 5 on ne boucle pas sur la demande "Saisir le nombre 1 :" ?

Peut-être veux tu un message différent ?
0
Maria666 Messages postés 32 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 18 septembre 2011
14 juin 2011 à 18:38
si c'est exactement sa le message : "Saisir le nombre 1 :" alors que moi je voudrait personnaliser la chose du genre " Le chiffre n'est pas correct, veuillez saisir un autre chiffre " mais je bloque
0
Utilisateur anonyme
14 juin 2011 à 19:07
Re,

String libErr = "Le chiffre n'est pas correct, veuillez saisir un autre chiffre.";
         String libOk = " Saisir le nombre 1 : ";
         String prompt = libOk;
do
{
System.out.print(prompt) ; 
nombre1 = Lire.i() ; 
prompt = libErr; // Si on boucle c'est ce libellé qu'on aura
} while ((nombre1 != 0) && (nombre1 != 1) && (nombre1 != 2) && (nombre1 != 3)); 

Cordialement,

Dan

0
Maria666 Messages postés 32 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 18 septembre 2011
14 juin 2011 à 19:48
Merci Dan ça marche nikel ce n'était pas très compliqué en effet.
0