Ecrivez un programme qui calcule la moyenne de N entiers. Le programme devrait inviter l'utilisateur à entrer la valeur de N et ensuite entrer tous les Nnumbers. Si l'utilisateur entre une valeur non positive pour N alors une exception devrait être levée (et interceptée) avec le message "N doit être positif". S'il y a une exception lorsque l'utilisateur entre les N numéros, un message d'erreur doit s'afficher et l'utilisateur est invité à entrer de nouveau le numéro. Si l'utilisateur n'entre pas un nombre entier, le programme doit demander l'utilisation pour entrer à nouveau la valeur. Est-ce que je lance l'exception correctement?Moyenne de calcul de programme Java avec des exceptions
import java.util.Scanner;
import java.util.InputMismatchException;
class Playground {
public static void main(String[ ] args) {
int sum = 0, mean;
System.out.println("Please enter number of integers");
Scanner sc1 = new Scanner(System.in);
int counter = sc1.nextInt();
if (counter <= 0) {
throw new InputMismatchException("N must be positive");
}
else {
System.out.println("Please enter "+counter+" numbers");
}
for (int i =0; i< counter; i++) {
int inputnum = sc1.nextInt();
if (inputsum <= 0){
throw new InputMismatchException("Please enter again");
continue;
}
sum = sum+inputnum;
System.out.println();
}
mean = sum/counter;
System.out.println(mean);
}
}
Non, vous ne le faites pas correctement. De votre question: "* devrait être jeté (** et attrapé **) *" - Vous n'attrapez pas l'exception. Le 'continue' que vous avez après' throw' est en fait un code inaccessible. – Maroun
Remplacez 'throw new InputMismatchException (" Veuillez entrer à nouveau ");' avec 'System.err.println (" Please enter again ");', et everthing fonctionnera comme prévu. Lire un tutoriel sur les exceptions. – clemens
Bien que vous souhaitiez demander à votre utilisateur d'entrer à nouveau l'entrée, votre boucle for continue de cocher. En outre, même si le nombre est non positif, vous l'ajoutez toujours à votre somme alors que vous êtes censé le rejeter. Ce sont quelques problèmes supplémentaires en dehors de la gestion des exceptions qui a été mentionné par d'autres. – Nishit