2016-05-25 6 views
-1

私はJavaと一般的なコーディングを使い慣れていません。このコードは、プレイヤーの数についてユーザからの整数を入力し、そのプレイヤーの数を合計したプレイヤーの名前を入力することを意図しています。ただし、実行すると、1つ少ない名前を入力することができます。なぜこのコードでは、numPlayersよりも少ないプレーヤを入力することができますか?

import java.util.Arrays; 
//import java.util.Scanner; 

    public class FarkleFactory { 

     public static void main(String[] args) { 
      // Welcome and set-up for a Farkle game 

      int numPlayers; 
      String playerOrder; 

      System.out.println ("Let's play Farkle!"); 
      //Scanner input = new Scanner (System.in); 
      TextIO input = new TextIO(); 

      System.out.println("How many players will there be?"); 
      numPlayers = input.getInt(); 
      String[] players = new String[numPlayers]; 
      System.out.println("Roll the dice and determine who starts..."); 
      System.out.println("Enter the players."); 

      for (int i = 0; i < numPlayers; i++) { 
       players[i] = TextIO.getln(); 
      } 

      System.out.println(Arrays.toString(players)); 
      System.out.println ("OK, " + players[1] + "! Roll the dice and get started!"); 
     } 
    } 
+0

「TextIO.getln();」とは何ですか?あなたのプログラムの行動は何ですか?何が問題なの? – Tunaki

+0

私はTextIOを使用しませんが、どこでTextIO変数を作成し、入力し、TextIOオブジェクトを割り当ててから、forループで入力するときに使用しませんか? –

+0

私は 'BufferedReader br = 新しいBufferedReader(新しいInputStreamReader(System.in));'を使用し、 'players [i] = br.readLine(); 'を使用すると動作します –

答えて

0

numPlayers = input.getlnInt(); 

numPlayers = input.getInt(); 

を交換してみてくださいそれ以外の場合は、「選手の数」のためのあなたのエントリーからの改行は、第一のプレーヤーの名前として読み込まれています。

関連する問題