Frage

Ich bin eine Ausnahme Schleife versucht, aber aus irgendeinem Grunde sein gibt mir nicht die Möglichkeit zu re Schreib meiner Scanner-Datei:

Ich weiß nicht, wie BufferedReader zu verwenden ist also, warum ich dies verwenden. Irgendwelche Hinweise?

Hier ist meine Standardklasse mit meiner Methode

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);
    }
}

Und hier ist meine Hauptklasse mit der Ausnahme mit einer Schleife wird implemeted:

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;
    }
}

Wenn jemand irgendwelche Ideen, wie man Schleife dies anders Ich bin ganz Ohr.

War es hilfreich?

Lösung 2

i zu entschieden der Methode Klasse loszuwerden und setzen Sie einfach die Methode in den Versuch Ausnahme Bereich.

verwendet, um einen .nextLine nach Scanner und es scheint, festgelegt.

Das sieht ok?

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;
}
}

Andere Tipps

Set Fehler false vor die Aktion. Auf diese Weise haben Sie die richtige Exit-Bedingung, wenn der Benutzer es wird richtig.

error = false;
zack.findNumbers(); 

Sie Schleife während 'Fehler' Variable hat einen Wert 'true' . Es wird jedoch 'true' nur, wenn die ausgelöst wird (das heißt, wenn 'fangen' Block ausgeführt wird). Der Steuerfluss ist es nicht erreichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top