2015-04-29 22 views
0

我的工作是將使用數組存儲的所有球員和他們的猜測兩者名稱的猜謎遊戲。我是相當新的陣列,所以我的計劃,讓用戶輸入到陣列是讓他們進入的人打的量,設置了一個變量,然後使用一個循環來保持要求的名字,直到我到了所需數量的球員的必要數量的名字。但是,我遇到了循環可能是一個非常簡單的問題。下面是我的一小段代碼迄今:循環不承認的變量先前定義

public class GuessGame { 
int w = 0; 
int[] Players = new int[100]; 
String[] PlayerNames = new String[100]; 
String numStart = JOptionPane.showInputDialog("How many players?"); 
int j = Integer.parseInt(numStart); 
while (w <= j) 
{ 
    String Name = JOptionPane.showInputDialog("What is your name?"); 
    PlayerNames[w] = Name; 
    w++; 
} 

的問題是,我得到關於我的循環變量的錯誤,W和j。錯誤聲明說明了它無法找到類w或類j的符號的效果。我不打算讓他們成爲類,而且我在其他項目中運行類似的代碼沒有困難,所以我真的不知道這裏出了什麼問題。我確信這是一件非常簡單的事情,但是*一直在這堵牆上停留一段時間,直到我完成排序後才能真正進展。這是一個包含三個獨立課程的項目的一部分。這裏發佈的類,一個Player類和一個Tester類,這是我的主要方法。我以前用更簡化的形式工作,但現在我需要爲實際的玩家輸入和陣列進行調整。無論如何,測試人員班級應該是我的主要班級。如果重要,我正在使用Netbeans。謝謝。下面是另外兩類以供參考:

package GuessGame; 


public class GameLauncher { 
public static void main(String[] args) { 
    GuessGame game = new GuessGame(); 
    game.startGame(); 
} 
} 

package GuessGame; 
import java.util.Random; 

public class Player { 
int number = 0; //where guess goes 
String name; 
public void guess() { 
    Random r = new Random(); 
    number = 1 + r.nextInt(21); 
    System.out.println("I'm guessing " + number); 

} 

} 
+0

後您錯誤在這裏.. –

+0

的一件事情是,這是一個有三個獨立的類項目的一部分。這裏發佈的類,一個Player類和一個Tester類,這是我的主要方法。我以前用更簡化的形式工作,但現在我需要爲實際的玩家輸入和陣列進行調整。無論如何,測試人員班級應該是我的主要班級。我將使用此信息更新原始帖子。 – Kavik

+0

GuessGame類中的代碼是否內部方法?您是否在複製內容時調整內容? –

回答

1

所有代碼需要在一個方法。除了班級級別的變量聲明之外,你不能有任何東西。將所有這些移到一個方法中,例如public static void main(String[] args)主要方法。

public class GuessGame { 

public static void main (String[] args) 
{  
    int w = 0; 
    int[] Players = new int[100]; 
    String[] PlayerNames = new String[100]; 
    String numStart = JOptionPane.showInputDialog("How many players?"); 
    int j = Integer.parseInt(numStart); 
    while (w <= j) 
    { 
     String Name = JOptionPane.showInputDialog("What is your name?"); 
     PlayerNames[w] = Name; 
     w++; 
    } 
} 
} 
+0

事情是,這是一個包含三個獨立課程的項目的一部分。這裏發佈的類,一個Player類和一個Tester類,這是我的主要方法。我以前用更簡化的形式工作,但現在我需要爲實際的玩家輸入和陣列進行調整。無論如何,測試人員班級應該是我的主要班級。我已經更新了原來的職位這一信息 – Kavik

1
public class GuessGame { 
public void getPlayerName() 
    { 
    int w = 0; 
    int[] Players = new int[100]; 
    String[] PlayerNames = new String[100]; 
    String numStart = JOptionPane.showInputDialog("How many players?"); 
    int j = Integer.parseInt(numStart); 
    while (w <= j) 
    { 
    String Name = JOptionPane.showInputDialog("What is your name?"); 
    PlayerNames[w] = Name; 
    w++; 
    } 
    } 
public static void main (String[] args) 
{ 
    GuessGame gg = new GuessGame(); 
    g.getPlayerName(); 
    }} 

你可以把在methos以及和主方法執行。但是,如果您在方法(局部變量)中聲明任何變量,則必須初始化該變量。有關更多詳細信息,請參閱here

+0

的事情是,這是一個有三個獨立的類項目的一部分。這裏發佈的類,一個Player類和一個Tester類,這是我的主要方法。我以前用更簡化的形式工作,但現在我需要爲實際的玩家輸入和陣列進行調整。無論如何,測試人員班級應該是我的主要班級。我已經使用此信息更新了原始帖子。 – Kavik

0
public class GuessGame 
{ 
    static int w = 0; 
    int[] Players = new int[100]; 
    static String[] PlayerNames = new String[100]; 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     String numStart = JOptionPane.showInputDialog("How many players?"); 
     int j = Integer.parseInt(numStart); 
     while (w <= j) 
     { 
      String Name = JOptionPane.showInputDialog("What is your name?"); 
      PlayerNames[w] = Name; 
      w++; 
     } 
    } 
} 

一切都應該在一個方法,除了variables.Class是模板的變量和方法!

+0

事情是,這是一個有三個獨立課程的項目的一部分。這裏發佈的類,一個Player類和一個Tester類,這是我的主要方法。我以前用更簡化的形式工作,但現在我需要爲實際的玩家輸入和陣列進行調整。無論如何,測試人員班級應該是我的主要班級。我已經使用此信息更新了原始帖子。 – Kavik