2017-06-22 2 views
-2

J'essaie d'insérer une boucle do-while dans la boucle do-while pour vérifier si l'entrée est un entier. J'ai ajouté un commentaire où je veux insérer la boucle do-while. Tout fonctionne parfaitement bien sauf pour cette partie.JAVA - Vérification si l'entrée est un nombre entier

public static void main(String[] args){ 
    int num1, num2; 
    char response; 
    Scanner in = new Scanner(System.in); 
    Scanner reader = new Scanner(System.in); 

    do {  
     System.out.print("Enter number: "); 
     num1 = in.nextInt(); 
     response = (char) reader.nextLine().charAt(0); 

     //I want to check if the input is integer here 
     do{ 
      System.out.println("Invalid input!\nPlease input integers only!"); 
     } while (response != /*something*/); 

     for(num2=0; num2 < 11; num2++) { 
      System.out.println(num1 + "X" + num2 + "=" + (num1 * num2)); 
      } 

     do { 
      System.out.println("\nDo you want to try again? [y/n]"); 
      response = (char) reader.nextLine().charAt(0); 
      if (response != 'n'&& response != 'N' && response != 'Y' && response != 'y') 
      System.out.println("Input invalid!"); 
     } while (response != 'n' && response != 'N' && response != 'y' && response != 'Y'); 

    } while (response != 'N' && response != 'n');{ 
     System.out.println("Thank you for using the table");} 
} 
+0

Bienvenue dans Stack Overflow! Veuillez consulter https://stackoverflow.com/help/how-to-ask, en particulier se concentrer sur les informations pertinentes (déjà éditées par @StephenC). –

+0

Vous pouvez mettre en gras le code préformé btw. La manière typique de pointer vers une certaine ligne est de mettre un commentaire dans le code qui montre où vous en parlez. – Carcigenicate

+0

Integer.parseInt peut être utile ici :) – Lemonov

Répondre

1

Au lieu d'utiliser un faire pendant que vous pouvez vérifier en utilisant la voie

try{ 
    yourNumber = Integer.parseInt(yourInput); 
}catch (NumberFormatException ex) { 
    //handle exception here 
} 
0

vous pouvez utiliser la « force brute » suivante et essayer d'analyser les entrées des utilisateurs, si quelque chose non valide est donné, alors vous obtenez un NumberFormatException

int num1 = 0; 
    String intCandidate = null; 
    boolean valid = false; 
    Scanner in = new Scanner(System.in); 

    while (!valid) { 
     try { 
      System.out.print("Enter number: "); 
      intCandidate = in.nextLine(); 
      num1 = Integer.parseInt(intCandidate); 
      valid = true; 
     } catch (NumberFormatException e) { 
      System.out.print("Nope... "); 
     } 
    } 
    in.close(); 
    System.out.println("Thanks!");