2016-11-20 6 views
-2

私は最高のコーダーではありませんので、私にこの問題を解決するために何をすべきか説明できれば大いに感謝します。誰かが私にこのスタックオーバーフローのエラーを理解する助けてもらえますか

私はプログラムを実行するとすべてを入力することができますが、最後にはjava.lang.stackoverflowErrorで最初のスキャナ行をハイライト表示します。

import java.util.Scanner; 
import java.lang.Object; 
public class Login 
{ 
    Scanner input = new Scanner(System.in); 
    Scanner input2 = new Scanner(System.in); 
    public void createAccount(){ 
     System.out.print("Create a 6 digit account number: "); 
     int createNumber = input.nextInt(); 

     System.out.print("Create a 4 digit PIN: "); 
     int createPin = input2.nextInt(); 
     Login acc = new Login(); 
     acc.loginScreen(createNumber, createPin); 

    } 
    public void loginScreen(int createNumber, int createPin){ 
     System.out.println("Enter your acocunt number: "); 
     int accEntryNumber = input.nextInt(); 
     int lengthNum = String.valueOf(accEntryNumber).length(); 

     System.out.println("Enter your pin: "); 
     int accEntryPin = input2.nextInt(); 
     int lengthPin = String.valueOf(accEntryPin).length(); 
     if(accEntryPin == createPin && accEntryNumber == createNumber){ 
      Main access = new Main(); 
      access.mainMenu(); 
     } 
     else{ 
      System.out.println("Access denied"); 
     } 
    } 
} 
+0

あなたの問題は何ですか? –

+0

プログラムを実行すると、すべてを入力できるようになりますが、最後にjava.lang.stackoverflowErrorを持つ最初のスキャナ行が強調表示されます – Johnm

+0

2つのスキャナを使用しないでください。 1つに付いてください。 – Squiddie

答えて

-1

プログラム全体に対して1つのスキャナを使用できます。このように:

import java.util.Scanner; 
import java.lang.Object; 
public class Login 
{ 
    Scanner input = new Scanner(System.in); 
    public void createAccount(){ 
     System.out.print("Create a 6 digit account number: "); 
     int createNumber = input.nextInt(); 

     System.out.print("Create a 4 digit PIN: "); 
     int createPin = input.nextInt(); 
     Login acc = new Login(); 
     acc.loginScreen(createNumber, createPin); 

    } 
    public void loginScreen(int createNumber, int createPin){ 
     System.out.println("Enter your acocunt number: "); 
     int accEntryNumber = input.nextInt(); 
     int lengthNum = String.valueOf(accEntryNumber).length(); 

     System.out.println("Enter your pin: "); 
     int accEntryPin = input.nextInt(); 
     int lengthPin = String.valueOf(accEntryPin).length(); 
     if(accEntryPin == createPin && accEntryNumber == createNumber){ 
      Main access = new Main(); 
      access.mainMenu(); 
     } 
     else{ 
      System.out.println("Access denied"); 
     } 
    } 
} 
+0

同じ正確なエラーが発生していますが、エラーは別のクラスにある可能性がありますか?このログインクラスのスキャナであるエラーが表示されます – Johnm

+0

別のクラスにある可能性があります。私はこのコードを実行すると、エラーが表示されません。 –

+0

私は "スキャナ入力=新しいスキャナ(System.in);"他のほとんどのクラスでは、それは問題になる可能性がありますか? – Johnm

関連する問題