Pregunta

I had a bit of a hard time figuring this part out for a school project of mine. So looking for a bit of clarification. Generally, the user had to input a number (column) to insert a game piece. However, if the user were to enter "q" the program would close down.

We were pointed into the direction of using "parseInt", however i am looking for a bit of clarification as to how this works?

while(response.equalsIgnoreCase("q"));
        {
            System.out.println("Do you want to play again?");
            response = scan.next();

        }
        System.out.println("Do you want to play again?");
        response = scan.next(); // this revisits the while loop that
                                // prompted the player to play.
¿Fue útil?

Solución

import java.util.Scanner;
 public class ScanInteger {
    public static void main(String...args)throws Throwable {
        int num = 0; String s= null;
        System.out.print("Please enter a number : ");
        Scanner sc = new Scanner(System.in);
        do{
        try{    
                s = sc.next();
                num= Integer.parseInt(s);
                System.out.println("You have entered:  "+num+" enter again : ");
        }catch(NumberFormatException e){
            if(!s.equalsIgnoreCase("q"))
                System.out.println("Please enter q to quit else try again ==> ");
            }
        }while(!s.equalsIgnoreCase("q"));
    sc.close();
    }
}

Otros consejos

See http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String)

public static int parseInt(String s)
       throws NumberFormatException

You want to apply a try-catch block around the Integer.parseInt(userInput) call to catch a NumberFormatException

In the catch body, you can set a flag that the input was invalid. Put the whole thing in a while loop based on the boolean isInputIsValid.

    boolean isValidNumber = false, wantsToQuit = false;
    while (!isValidNumber) {
        // Ask user for a value any way you want and save it to userInput
        String userInput = "";

        try {
            Integer.parseInt(userInput);
            isValidNumber = true;
        } catch (NumberFormatException e) {
            isValidNumber = false;
            if (userInput.equals("q")) {
                wantsToQuit = true;
                break;
            }
        }
    }

wantsToQuit is not a necessary variable, just showing what the purpose of that section is

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top