2016-12-29 14 views
0
public class GameLogic { 
    Scanner input = new Scanner(System.in); 

    public void buyHouse(Player player, int propertyIndex) { 
     boolean boughtHouse = false; 
     GameboardSquare property = Board.getMonopolyBoard()[propertyIndex]; 
     int a = 0; 
     if (property.getNumberHouse() <= 3) { 
      System.out.println("How many houses you want to buy? it must be between 1-4: "); 
      a = input.nextInt(); 
      System.out.println(a); 
     } 
    } 
} 

私が間違っていることを教えてくれる人がいますか?私がコードを実行するたびに、それはコンソールに何も入力させません。ちょうどその行に吸い込まれます。a = input.nextInt();私は、デバッガでそれをデバッグしようとしたが、その破壊、これはまたJavaスキャナがユーザーからの入力を受け付けていない

public class GameLogicTest extends TestCase { 
    public void testBuyHouse() throws Exception { 
     Player player = new Player(1000,0); 
     GameboardSquare property = new GameboardSquare("Seb", 100,50,50,100,150,200,250,300,200,0,3,0,player,false); 
     GameboardSquare[] gameboard = new GameboardSquare[1]; 
     gameboard[0] = property; 
     GameLogic game = new GameLogic(); 
     Board board = new Board(gameboard); 
     board.setMonopolyBoard(gameboard); 
     game.buyHouse(player,0); 
    } 
} 

https://i.stack.imgur.com/Dovlc.png

私のテストケースですまだ知らないも私はプリントアウト

+0

コードはどこで実行しますか? IDEまたはコンソールで?あなたが 'a = input.nextInt();'行に 'つぶれてしまう 'と言うと、正確にはどういう意味ですか? – Nurjan

+2

それは立ち往生していないが、あなたの入力を待っているように見える、あなたのコードを実行している。あなたの入力が何であれ入力し、Enterを押します。それは動作するはずです! –

+0

System.console()を使用してコンソールから入力を読み取ることを検討してください。 これを起動する方法によっては、コンソールが利用できないか、System.inが利用できないことがあります。 –

答えて

-2

後に改行があるはずです私がScannerで持っている共通のエラーは、input.nextInt()を使用するときに別々の行に2つの整数が読み込まれないということです。例えばこの場合

入力:

3 4 

7 

スキャナを容易input.nextIntと最初の2つの整数を()を読み取るだろうが、それはであるため、第1に達しwouldntの別の行。これを修正するには、

Integer.parseInt(input.nextLine()); 

最初の行の最後に次のコードを使用します。

また、使用することができます:あなたはその行にスペースで区切られた要素を持つ文字列の配列を与えるだろう

input.nextLine().split(" "); 

を。しかし、別々に解析する必要があります。

+0

これは間違っています。 Zomg {public static void main(String [] args){java.util.Scanner in = new java.util.Scanner(System.in);このクラスには、 for(;;){System.out.println(in.nextInt()); }}} '素晴らしい作品です。 [文書に記載されている](https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html)のように、「Aスキャナはデリミタ・パターンを使用して入力をトークンに分割します。デフォルトでは空白にマッチします。 "改行は特別扱いされません。 –

関連する問題