2014-01-30 4 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

Требуется еще одно изменение, чтобы заставить это работать. Вам понадобится 'gamesPitched = new GamePitched [totalGames];' между циклами do-while и циклом 'for', иначе в массиве не будет места для чего-либо. –

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 

    } 

} 
Смежные вопросы