J'ai fait un programme qui demande à l'utilisateur d'entrer deux nombres, et il devrait donner une erreur si le deuxième nombre est un 0. Cependant, j'obtiens une erreur, qui est ci-dessous. J'ai une instruction if-else, mais elle ne fait pas ce que je m'attends à faire. Je ne suis pas sûr de ce que je fais mal.Pourquoi mon code lance-t-il une exception ArithmeticException lorsque je m'attends à ce qu'il affiche simplement "Error"?
public static void main(String[] args) {
int x, y;
Scanner kbd = new Scanner(System.in);
System.out.print("Enter a: ");
x = kbd.nextInt();
System.out.print("Enter b: ");
y = kbd.nextInt();
int result = add(x, y);
int result2 = sub(x, y);
int result3 = multi(x, y);
int result4 = divide(x, y);
int result5 = mod(x, y);
System.out.println(x + " + " + y + " = " + result);
System.out.println(x + " - " + y + " = " + result2);
System.out.println(x + " * " + y + " = " + result3);
System.out.println(x + "/" + y + " = " + result4);
System.out.print(x + " % " + y + " = " + result5);
}
public static int add(int x, int y) {
int result;
result = x + y;
return result;
}
public static int sub(int x, int y) {
int result2;
result2 = x - y;
return result2;
}
public static int multi(int x, int y) {
int result3;
result3 = x * y;
return result3;
}
public static int divide(int x, int y) {
int result4;
result4 = x/y;
if (y == 0) {
System.out.print("Error");
} else {
result4 = x/y;
}
return result4;
}
public static int mod(int x, int y) {
int result5;
result5 = x % y;
if (y == 0) {
System.out.print("Error");
} else {
result5 = x % y;
}
return result5;
}
Sortie Je reçois cette erreur ..
Enter a: 10
Enter b: 0
Exception in thread "main" java.lang.ArithmeticException:/by zero
Alors, quand cela se produit une erreur? Quand vous «divisez» (emphase ** diviser **)? –
Il est appelé "Système" pas "Sytem" –
Pouvez-vous s'il vous plaît coller tout votre fichier? – nigonzalezm