2016-02-28 3 views
0

Я пишу код для класса, который должен принимать экзамены в качестве входных данных, пока пользователь не вводит «-1». После того, как они уходят, он усредняет результаты и печатает их. Я продолжаю получать ошибку «не могу найти символ», и я просмотрел сайт и пока не нашел ничего подходящего.JAVA- ошибка: не найден символ - не нашли ответа на сайте

import java.util.*; 

public class hw6 
{ 
    public static void main(String args[]) 
    { 
    int avg = 0; 
    Scanner in = new Scanner(System.in); 

    System.out.println("This program will intake exam scores between 0 and 100 ONLY."); 
    System.out.println("Enter scores to average, and when you're done inputting, "); 
    System.out.println("enter -1 to stop and average your scores."); 
    int scoreIn = in.nextInt; 
    getLegalInput(scoreIn); 
    System.out.println("The average of the exam scores is " + avg + "."); 


} 

public static int getLegalInput (int scoreIn) 
{ 
    int sum = 0; 
    int i = 0; 
    while (scoreIn != -1) 
    { 
      if ((scoreIn < 101) && (scoreIn > -1)) 
      { 
      sum = (sum + scoreIn); 
      i++; 
      } 
    else 
    System.out.println("Out of range! Must be between 0 and 100."); 
    } 
    if (scoreIn == -1) 
    { 
     CalcAvg(sum, i); 
    } 
} 
public static int CalcAvg(int sum, int i) 
{ 
    int avg = 0; 

    i = (i - 1); //fix problem where the stop value is included in the i value 
    //calc = (calc - Svalue); // fixes problem where stop value throws off the calc 
    avg = (sum/i); //averages the values of exam 

    return (avg); 
} 
} 

Ошибка я получаю:

hw6.java:14: error: cannot find symbol 
     int scoreIn = in.nextInt; 
        ^
    symbol: variable nextInt 
    location: variable in of type Scanner 
1 error 

Вся помощь и советы оценили!

+0

'in.nextInt();' – Eran

+0

О, боже, я не могу поверить, что я пропустил что-то такое хромое. Спасибо –

+0

Ваш код не будет компилироваться после исправления in.nextInt(). Добавьте оператор return в метод! – FallAndLearn

ответ

2

nextInt - это метод, а не элемент данных - его следует называть круглыми скобками: nextInt().

0

Ответ, предоставленный Mureinik, верен. Когда вы когда-либо получаете ошибку времени компиляции или исключения времени выполнения в любой написанной java-программе, просто попробуйте увидеть, что такое сообщение, указанное в журнале ошибок или исключений. В случае, упомянутом вами ясно сказано

hw6.java:14: error: cannot find symbol 
     int scoreIn = in.nextInt; 
        ^
    symbol: variable nextInt 
    location: variable in of type Scanner 
1 error 
  1. выпуск находится на линии № 14: см номер строки в коде вы компиляции.
  2. В чем проблема? : cannot find symbol
  3. Какой символ не найден? : nextInt
  4. В каком классе java символ не найден? : Scanner.java

Так вопрос: In Scanner.java there is no variable of type nextInt. We have written the code which tries to access nextInt variable from the object of class Scanner.

Правильный поиск в Интернете должны быть проверки об этой переменной, а затем вы получили бы знать, что это не является переменной, а метод (функция ), так вместо написания in.nextInt это должно быть in.nextInt()

Также обратите внимание, что в Java мы называем функции как методы. Когда вы хотите выполнить какой-либо процесс, как в текущем случае, мы хотим прочитать Integer из входного потока, мы всегда делаем это с помощью методов. Обычно мы получаем только переменные констант из объектов другого класса. Для взаимодействия с объектами из другого класса мы должны использовать методы. Мы не выставляем поля не констант вне класса [java синтаксис позволяет, но в качестве хорошей практики мы раскрываем методы как интерфейс для внешнего мира]. Это относится к Encapsulation. Надеюсь, это поможет в вашем будущем кодировании.

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