2014-01-30 47 views
-5

當我嘗試編譯這段代碼時,我總是想出編譯錯誤。代碼如下。編譯錯誤Java

import java.util.Scanner; 

public class BaseballPitcher 
{ 
    private final int MAX_GAMES = 15; 
    private gamesPitched[]; 
    private int totalGames; 
    private int totalRuns; 
    private float totalInnings; 
    private double ERA; 

    public BaseballPitcher() 
    { 
     gamesPitched = new GamePitched[]; 
    } 
    public void inputGameData() 
    { 
     Scanner input = new Scanner (System.in); 

     do 
     { 
      System.out.printf ("How many games will you enter (up to %d): ", MAX_GAMES); 
      totalGames = input.nextInt(); 

      if (totalGames <= 0 || totalGames > MAX_GAMES) 
      { 
       System.out.printf ("Error: You may only enter up to %d games" + " - Please try again\n\n", MAX_GAMES); 
      } 
     } while (totalGames <= 0 || totalGames > MAX_GAMES); 

     for (int x = 0, x < totalGames, x++) 
     { 
      gamesPitched[x] = new GamePitched(); 
      gamesPitched[x].inputGame(); 
     } 
    } 
} 

我收到編譯錯誤是:

[Please list your compile error or errors]. 

爲什麼會收到編譯錯誤?

+9

你爲什麼要告訴我們你的錯誤,但沒有告訴我們它們是什麼?看起來你只是希望我們在不付出任何努力的情況下解決它。 –

+0

您如何要求限制需要應用多少變更才能獲得工作代碼... –

回答

4

看起來您有一個名爲GamePitched的自定義類。你的數組gamesPitched[]可能應該是這種類型的數組,但你已經聲明瞭它沒有類型。嘗試private GamePitched[] gamesPitched;

您的循環只有語法錯誤 - ,應該是;,Java用於分隔for循環中的子句。

您應該閱讀堆棧跟蹤中提供的錯誤。即使你不熟悉Java,它們也是相當具有描述性的,並且可以幫助你確定問題的存在位置(並經常提出修正)。

+0

其實,我能夠從那裏找到答案。我的主要問題只是陣列。謝謝大家的建議。對不起,這個問題很滑稽,這是我第一次使用這個網站。 – user3023969

+1

需要進行一項更改才能使其發揮作用。您需要在'do-while'循環和'for'循環之間'gamesPitched = new GamePitched [totalGames];否則數組中的任何內容都不會有空間。 –

0

嗯,這是它應該怎麼樣,我想

import java.util.Scanner; 

public class BaseballPitcher 
{ 
    private final int MAX_GAMES = 15; 
    private GamePitched[] gamesPitched; 
    private int totalGames; 
    private int totalRuns; 
    private float totalInnings; 
    private double ERA; 

    public BaseballPitcher() 
    { 
     gamesPitched = new GamePitched[10]; 
    } 
    public void inputGameData() 
    { 
     Scanner input = new Scanner (System.in); 

     do 
     { 
      System.out.printf ("How many games will you enter (up to %d): ", MAX_GAMES); 
      totalGames = input.nextInt(); 

      if (totalGames <= 0 || totalGames > MAX_GAMES) 
      { 
       System.out.printf ("Error: You may only enter up to %d games" + " - Please try again\n\n", MAX_GAMES); 
      } 
     } while (totalGames <= 0 || totalGames > MAX_GAMES); 

     for (int x = 0; x < totalGames; x++) 
     { 
      gamesPitched[x] = new GamePitched(); 
      gamesPitched[x].inputGame(); 
     } 
    } 
} 

至少進行編譯。不能說的邏輯

和其他類東西必須有至少這個方法

public class GamePitched { 

    public void inputGame() { 
     // TODO Auto-generated method stub 

    } 

}