Rechercher : dans
Par :

[Java] Comparaison de deux nombres en param

Dernière réponse le 4 mai 2007 à 21:58:15 fab_lous, le 4 mai 2007 à 15:36:41 
 Signaler ce message aux modérateurs

Bonjour,
je bloque sur un petit programme:

import java.lang.*;//importation du package correspondant aux méthodes utilisées

public class Compare {//déclaration de la classe d'objet
	String args[]=new String[1];//déclaration du tableau
	public static void main(String args[]){//procédure de comparaison
		int a=Integer.parseInt(args[0]);//transforme les variables de type String en int
		int b=Integer.parseInt(args[1]);
		
		if (args.length == 1) {
			
		//Conditions de comparaison
		
		if(a==b){
			System.out.println(a+" est égal à "+b);
			}
			else{
		if(a<b){
			System.out.println(a+" est inférieur à "+b);
			}
		else{
			System.out.println(a+" est supérieur à "+b);
			}
		}
	}
	else{
	System.out.println("Veuillez rentrer 2 entiers");
				}
			}
		}


Il compare 2 nombres qu'on doit rentrer (pour le moment je débute, je ne sais pas comment faire saisir directement l'utilisateur sur la console... ça viendra!).

En fait le soucis c'est que je n'arrive pas à faire afficher sans erreurs le message "Veuillez rentrer 2 entiers" lorsque seulement 1 valeur a été rentrée.

Pouvez-vous m'aider? C'est surement très bête.

De plus, lors de ce message, est-il possible de relancer automatiquement le programme?

Merci d'avance!
Configuration: Windows XP
Firefox 2.0.0.3

1

Pierro, le 4 mai 2007 à 16:03:22

"En fait le soucis c'est que je n'arrive pas à faire afficher SANS ERREUR le message "Veuillez rentrer 2 entiers" lorsque seulement 1 valeur a été rentrée. "

Je pense que c'est parce que tu essaye d'accèder à un indice de ton tableau qui est vide.

Met ces deux lignes après ta condition "if (args.length == 1)" :

int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);

De plus ta condition :

if (args.length == 1)

devrait plutôt être :

if (args.length == 2)

non ?


Ensuite pour que ton programme s'éxécute en boucle jusqu'à ce que tu ais deux valeurs, fait :

public static void main(String args[]) {
// Saisie des deux arguments
do {
....
} while (nbArgs != 2);
}

Avec nbArgs le nombre d'agument saisi.

Pierro

Répondre à Pierro

2

Pierro, le 4 mai 2007 à 16:35:03

Oups !

public static void main(String args[]) {
do {
// Saisie des deux arguments
....
} while (nbArgs != 2);
}

C'est mieux...

Répondre à Pierro

3

 fab_lous, le 4 mai 2007 à 21:58:15
  • +2

Merci, j'ai mis la conversion des variables dans la boucle et j'accède maintenant au message que je voulais. Par contre pour redémarrer la saisie des variables ça n'a pas fonctionné.
Pour la boucle tant que, je viens de découvrir que c'est inversé par rapport au C. Encore merci!

Fab

Répondre à fab_lous