JAVA-错误:找不到符号 - 尚未在网站上找到答案

时间:2016-02-28 07:30:54

标签: java compiler-errors java.util.scanner

我正在编写一个类的代码,该代码应该将考试分数作为输入,直到用户输入“-1”。他们退出后,平均得分并打印出来。我一直收到“无法找到符号”的错误,我查看了该网站,但尚未发现任何适用的内容。

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

感谢所有帮助和建议!

2 个答案:

答案 0 :(得分:2)

nextInt是一个方法,而不是数据成员 - 应该用括号调用它:nextInt()

答案 1 :(得分: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
  5. 所以问题是: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有关。 希望这有助于您将来的编码。