Salut,
Utilises la classe java.util.Scanner :
Scanner scanner = new Scanner(System.in);
Tu fais une boucle qui lit les entiers (par la méthode nextInt()). Tu sors de la boucle si ce qui est lu est -1 et tu cumules dans une variable somme les autres nombres, et tu incrémentes aussi une variable nombre pour les compter. Il ne te reste plus qu'à calculer la moyenne après la boucle avec somme et nombre. Si tu veux être sûr que ça fonctionne même si la saisie ne contient pas que des int, il te faudra utiliser la méthode hasNextInt() de Scanner pour tester que la prochaine saisie à lire est bien un int (sinon nextInt() plantera).
Il te faudra en revanche forcément appuyer sur entrée à la fin de la saisie (tu peux saisir ta liste "1 2 3 -1" en une fois (parce que l'espace est pris en charge comme séparateur) mais il faut valider par entrée à la fin. On peut d'ailleurs saisir un nombre par ligne, ce qui rend le cas -1 indispensable
Une autre possibilité est d'enregistrer -1 comme séparateur mais il te faudra quand même taper entrée.
new Scanner(System.in).useDelimiter(" |(-1)")
Dans ce cas, hasNextInt() répondra faux lorsque la saisie est -1 : il te faut donc considérer que la boucle s'arrêtera dans ce cas-là. Pour vérifier que la saisie est -1 il faudra lire cette valeur par next() (dans une String) au lieu de nextInt().
Si tu tiens absolument à ce que la saisie s'arrête par la saisie de -1, il te faut utiliser directement System.in et lire caractère par caractère en analysant toi-même les caractères au fur et à mesure. Ça risque d'être trop compliqué si tu débutes.
Partager