bonjour, j'ai un petit probleme concernant un programme qui resoud les equations de second degré. Quand l'exception InputMismatchException est lancée, il la traite impec avec le catch associé cad il affiche à l'ecran "Vous devez introduire un nombre", puis il execute la premiere instruction apres le catch ("Voulez-vous continuer ? [o/n/?]") apres ça il se bloque : je peux rien saisir au clavier .
voici le code complet :
import java.util.InputMismatchException;
import java.util.Scanner;
public class SecondDeg {
public static void main(String[] args) {
boolean continuation=true;
Scanner scan = new Scanner(System.in);
double a,b,c,delta,d,x,y,im,re;
char verif;
do {
System.out.println("ax²+bx+c=0");
System.out.println("Veuillez entrer les coefficients ");
try{
System.out.print("a = ");
a= scan.nextDouble();
while(a==0) {
System.out.println("a est different de 0");
System.out.print("a = ");
a= scan.nextDouble();
}
System.out.print("b = ");
b= scan.nextDouble();
System.out.print("c = ");
c= scan.nextDouble();
System.out.println("\nl'equation a resoudre est : "+a+"x²+"+b+"x+"+c+"=0\n");
delta = Math.pow(b, 2.0)-4*a*c;
if (delta>0)
{
x = (-b-Math.sqrt(delta))/2;
y = (-b+Math.sqrt(delta))/2;
System.out.println("2 solutions réelles:\n x = "+x+" , y = "+y+"");
}
else if (delta ==0)
{
x = (-b)/2;
System.out.println("1 solution réelle:\n x = "+x+"");
}
else
{
d=Math.sqrt(-delta);
re=(-b)/2;
im=d/2;
System.out.println("2 solutions complexes:\n" +
" x = "+re+"-"+im+"i , y = "+re+"+"+im+"i");
}
}
catch (InputMismatchException e)
{
System.out.println("Vous devez introduire un nombre");
}
System.out.println("\nVoulez-vous continuer ? [o/n/?]");
verif=scan.next().charAt(0);
if (verif != 'o' && verif != 'O')
continuation = false;
}while(continuation);
System.exit(-1);
}
}
Merci d'avance pour vos reponses.