2016-09-16 9 views
-1

このコード行には問題があります。このコードは、パッケージAが月額9.95ドルで10時間、追加時間が2.00ドルの請求書のインターネットサービスを計算することです。パッケージBは、1.95ドルの追加費用で20時間、毎月13.95を要します。パッケージCの料金は月額19.95ドルです。私は時間を置いた後、このエラーjava.util.NoSuchElementExceptionを取得し続けます。ここでjava utilこのような要素はありません例外例外

コードです:

import java.util.Scanner; 

public class InternetServiceProvider { 
    public static void main (String args[]) 
    { 
     while (true) 
     { 
      printMonthlyBill(calculateBill(getHours(), menu())); 
     } 
    } 

    public static double getHours() 
    { 
     double hours; 

     Scanner inputHours = new Scanner (System.in); 

     System.out.print("Please enter the hours used: "); 
     hours = inputHours.nextDouble(); 

     inputHours.close(); 

     return hours; 
    } 

    public static int menu() 
    { 
     int packageChoice; 

     Scanner userInput = new Scanner (System.in); 

     System.out.println("Which package have you obtain? (Please use A, B, or C)"); 
     System.out.println("[1] Package A"); 
     System.out.println("[2] Package B"); 
     System.out.println("[3] Package C"); 
     System.out.print("Please select your package: "); 
      packageChoice = userInput.nextInt(); 
     userInput.close(); 

     return packageChoice; 
    } 
} 

これは、入力された:

Please enter the hours used: 25 
Which package have you obtain? (Please use A, B, or C) 
[1] Package A 
[2] Package B 
[3] Package C 
Please select your package: Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Unknown Source) 
    at java.util.Scanner.next(Unknown Source) 
    at java.util.Scanner.nextInt(Unknown Source) 
    at java.util.Scanner.nextInt(Unknown Source) 
    at InternetServiceProvider.menu(InternetServiceProvider.java:37) 
    at InternetServiceProvider.main(InternetServiceProvider.java:8) 
+1

ようこそStackOverflow。これは実際にはここでの回答と重複する質問です:http://stackoverflow.com/q/13042008/1646783。 – jlars62

答えて

-1

あなたのSystem.inを閉じています。代わりに、2つの方法の間でScannerを共有して、完了後に閉じる必要があります。

public static void main (String args[]) 
{ 
    try(Scanner input = new Scanner (System.in)) { 
     while (true) 
     { 
      printMonthlyBill(calculateBill(getHours(input), menu(input))); 
     } 
    } 
} 

public static double getHours(Scanner input) 
{ 
    double hours; 



    System.out.print("Please enter the hours used: "); 
    hours = input.nextDouble(); 

    return hours; 
} 

public static int menu (Scanner input) 
{ 
    int packageChoice; 

    System.out.println("Which package have you obtain? (Please use A, B, or C)"); 
    System.out.println("[1] Package A"); 
    System.out.println("[2] Package B"); 
    System.out.println("[3] Package C"); 
    System.out.print("Please select your package: "); 
     packageChoice = input.nextInt(); 

    return packageChoice; 
} 
関連する問題