Question

Je suis en train de boucler une exception, mais pour une raison quelconque ce ne est pas de me donner la possibilité de ré écrire mon fichier scanner:

Je ne sais pas comment utiliser BufferedReader c'est pourquoi j'utilise cela. Des indices?

Voici ma classe standard avec ma méthode

package arrayExceptionsWithInput;
import java.util.*;
public class GetThoseNumbersBaby {

    int firstInt;
    int secondInt;
    boolean error;
    Scanner yourNumbers = new Scanner(System.in);

    public void findNumbers()
    {
        System.out.println(" please enter your first number");
        firstInt = yourNumbers.nextInt();
        System.out.println(" pleas enter your second number");
        secondInt = yourNumbers.nextInt();
        int finalInt = (firstInt+secondInt);
        System.out.println("total is: " + finalInt);
    }
}

Et voici ma classe principale, à l'exception étant implemeted avec une boucle:

package arrayExceptionsWithInput;
import java.util.*;

public class InputException
{
    public static void main(String[] args)
    {
        boolean error = false;
        GetThoseNumbersBaby zack = new  GetThoseNumbersBaby();


        {
            do {
                try
                {
                    zack.findNumbers();
                }
                catch(InputMismatchException Q)
                {
                    System.out.println(" one of your integers was incorrect, please try again");
                    Q.printStackTrace();
                    error = true;
                } 
            } while (error == true);
        }
        error = false;
    }
}

Si quelqu'un a des idées sur la façon de boucler différemment, je suis tout ouïe.

Était-ce utile?

La solution 2

i décidé trop se débarrasser de la classe de la méthode et vient de mettre la méthode dans la zone d'exception try.

utilisé un scanner .nextLine après et il semble fixé.

semble correct?

package arrayExceptionsWithInput;
import java.util.*;
public class InputException
{
public static void main(String[] args)
{
boolean error = false;
int firstInt;
int secondInt;
Scanner yourNumbers = new Scanner(System.in);
{
    do{
            try
            {

                    System.out.println(" please enter your first number");
                    firstInt = yourNumbers.nextInt();
                    yourNumbers.nextLine();
                    System.out.println(" pleas enter your second number");
                    secondInt = yourNumbers.nextInt();
                    yourNumbers.nextLine();
                    int finalInt = (firstInt+secondInt);
                    System.out.println("total is: " + finalInt);
                    yourNumbers.nextLine();

            }
            catch(InputMismatchException Q)
            {

                Q.printStackTrace();
                System.out.println(" one of your integers was incorrect, please try again");
                error = true;
                yourNumbers.nextLine();
            }   
        }while (error == true);
    }error = false;
}
}

Autres conseils

Définir erreur false avant l'action. De cette façon, vous avez la condition de sortie correcte si l'utilisateur obtient le droit.

error = false;
zack.findNumbers(); 

boucle while 'erreur' variable a la valeur 'true' . Cependant, il devient 'true' uniquement lorsque est jeté (à savoir quand 'attraper' bloc est exécuté). Flux de contrôle ne l'atteint pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top