i added a while loop so that if the user enters an invalid value, the code will re-prompt the user to put in a valid value. but the when the user puts in an invalid value, the code goes in an infinite loop. any help would be much appreciated !!
public static void main(String[] args) {
System.out.println("Usage : enter a, b, & c from a quadratic equation");
System.out.println(" aX^2 +bX + c = 0");
System.out.println(" Result will be 2 values for X");
Scanner in = new Scanner(System.in);
double a = 0;
double b = 0;
double c = 0;
double x1 = 0 ;
double x2 = 0;
double discriminant = 0;
System.out.println("Please enter values for a , b, and c ");
while(true){
try
{
a = in.nextDouble();
break;
}
catch(java.util.InputMismatchException E)
{
System.out.println("wrong input, try again");
}
}
while(true){
try
{
b = in.nextDouble();
break;
}
catch(java.util.InputMismatchException E)
{
System.out.println("wrong input, try again");
}
}
while(true){
try
{
c = in.nextDouble();
break;
}
catch(java.util.InputMismatchException E)
{
System.out.println("wrong input, try again");
}
}
//x1 = (-b+sqrt(b*b - 4ac))/2a
//x2 = (-b+sqrt(b*b - 4ac))/2a
discriminant = b*b -4.0 * a * c;
x1 = (-b + Math.sqrt(discriminant))/2.0*a;
x2 = (-b - Math.sqrt(discriminant))/2.0*a;
System.out.println("The two values for X are " + x1 + " and " + x2);
}