2013-02-07 32 views
0

我试图让用户输入和第二个输入值后,我得到这个错误:异常线程“main” java.util.NoSuchElementException:没有找到行

Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at Reservations.start(Reservations.java:50) at Reservations.main(Reservations.java:29)

import java.util.Scanner; // Needed to read user input 

public class Reservations { 

     // Boolean array for seating [false = available, true = taken] 
     static boolean[][] seats; 

     // Main method 
     public static void main(String[] args) { 

       // Initiates all array values to be false (available) 
       seats = new boolean[4][4]; 
       for (int i = 0; i < 4; i++) { 
         for (int j = 0; j < 4; j++) { 
           seats[i][j] = false; 
         } 

         // Welcome message 
         System.out.println("-------------------------"); 
         System.out.println("Welcome to NSCC AirLines."); 
         System.out.println("-------------------------\n"); 

         // Starts program 
         start(); 
       } 
     } 

     public static void start() { 

       // Scanner needed to read users input 
       Scanner sc = new Scanner(System.in); 

       // Variables for user input 
       String requestedSection; 
       String requestedSeat; 

       // Counters for seating array 
       int countSection = 0; 
       int countSeat = 0; 

       // Prompts the user to select their choice of section 
       System.out.print("Please type 1 for First Class or 2 for Economy: "); 

       // Section preference 
       requestedSection = sc.nextLine(); 

       switch (requestedSection) { 
       case "1": 
         // User selects first class 
         System.out.println(">>> You have selected First Class. \n"); 
         break; 

       case "2": 
         // User selects economy 
         System.out.println(">>> You have selected Economy. \n"); 
         break; 

       default: 
         // User has not selected a valid class 
         System.out 
             .println(">>> You have not selected a valid class. Please try again. \n"); 
         start(); 
         break; 
       } 

       // Prompts the user to select their choice of seat 
       System.out.print("Please type 1 for window and 2 for aisle: "); 

       // Seat preference 
       requestedSeat = sc.nextLine(); 

       switch (requestedSeat) { 
       case "1": 
         // User selects first class 
         System.out.println(">>> You have selected a window seat. \n"); 
         break; 

       case "2": 
         // User selects economy 
         System.out.println(">>> You have selected an aisle seat. \n"); 
         break; 

       default: 
         // User has not selected a valid class 
         System.out.println(">>> You have not selected a valid seat. Please try again. \n"); 
         start(); 
         break; 
       } 

       // Closes Scanner 
       sc.close(); 
     } 
} 
+0

对不起你需要告诉我们的例外来自哪行号,你的程序正在试图做的,你有没有尝试调试代码等 – gerrytan

+0

异常线程“main” java.util.NoSuchElementException:否线发现 \t在java.util.Scanner.nextLine(来源不明) \t在Reservations.start(Reservations.java:50) \t在Reservations.main(Reservations.java:29) – Jonny

+0

我想通了。我在循环的主要方法中丢失了一个方括号,它通过了。感谢所有答复。 – Jonny

回答

2

的API文档的readLine()方法表示如下

Throws: 
    NoSuchElementException - if no line was found 

你应该来处理这个异常,或者只是使用hasNextLine()方法来避免该异常。

while(sc.hasNextLine()){ 
    requestedSeat = sc.nextLine(); 
} 
相关问题