2017-02-28 65 views
-1

我真的希望我的程序每次迭代一次,但是當我運行代碼時,第一次嘗試遵循約束條件,它要求我輸入兩次1到7之間的數字,並且II經過一次試驗,代碼按需要流動。爲什麼我的掃描器會重複一次,然後一次輸入非整數的東西?

//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); 
相關問題