2017-02-28 4 views
-1

私が本当にやりたいことは毎回繰り返しますが、コードを実行するときに初めて制約を守ろうとすると、1から7の間の数字を2回入力するように求められます。 1回の試行で、コードは必要に応じて流れます。なぜ私のスキャナは何度も繰り返して何度も何度も繰り返しますが、整数ではないものを入力します。

//import libraries 
import java.util.Scanner; 

public class Milestone1 { 

public static void main(String[] args) { 
    //define variables 
    Scanner scnr = new Scanner(System.in); 
    int patternDes = 0; 
    boolean world[][] = new boolean[Config.WORLD_ROWS][Config.WORLD_COLUMNS]; 


    //print statements 
    System.out.println("Welcome to Conway's Game Of Life"); 
    System.out.println("--------------------------------"); 
    System.out.println("1)Glider 2)Beacon 3)Beehive 4)R-pentomino"); 
    System.out.println("5)Random 6)Custom or 7)Exit"); 
    System.out.print("Choose a pattern:"); 

    //Have the scanner choose a pattern 
    patternDes = scnr.nextInt(); 

    //check constraints 
    while(!(patternDes <= 7 && patternDes >= 1)) 
    { 
     System.out.println("Enter a number between 1 and 7: "); 
     if(!scnr.hasNextInt()){ 
      scnr.nextLine(); 
      continue; 
     } 
     else{ 
      patternDes = scnr.nextInt(); 
      if((patternDes <= 7 && patternDes >= 1)){ 
       break; 
      } 
      else{ 
       continue; 
      } 
     } 
    } 
    //write another while loop now 

} 

} 

これは他の多くのコードでも発生していますが、これは永久に特定の方法を解決するのに必要です。

+0

さらに詳しい情報を提供したり、完全なコードを貼り付けることはできますか? – Maverick

答えて

0

これは必要なものですか?

Scanner scnr = new Scanner(System.in); 
int patternDes; 
do { 
    System.out.println("Enter a number between 1 and 7: "); 
    patternDes = scnr.nextInt(); 
}while (patternDes <= 7 && patternDes >= 1); 
関連する問題