Java:“错误:找不到符号”

Posted

技术标签:

【中文标题】Java:“错误:找不到符号”【英文标题】:Java: "error: cannot find symbol" 【发布时间】:2013-12-06 21:41:11 【问题描述】:

(我敢肯定,这是菜鸟的错误。)

我是一年级计算机科学专业的学生,​​正在尝试使用代码编写一个作业程序;

import java.util.Scanner;
public class Lab10Ex1 

   public static void main(String[] arg) 

    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please type a number: ");
    int n = keyboard.nextInt(); 
    calcNumFactors();
  
  public static void calcNumFactors()

   System.out.print(n + 1);

  


但是在编译时,我得到了错误;

Lab10Ex1.java:10:错误:找不到符号 System.out.print(n + 1); ^

符号:变量 n

地点:Lab10Ex1 班

如果有人能向我解释我做错了什么,或者如何解决它,我将不胜感激。

【问题讨论】:

作为提示;保持你的代码格式一致和可读。它会在以后的作业和未来的课程中省去很多麻烦。 啊。正如我所说,我是该站点的新手,也是 Java 的新手。我很抱歉。凌晨 1:30 可能没有帮助。 是的,编码到深夜从来都不是一件有趣的事(我在大学时经常这样做)。格式化位几乎都是为了您的利益;这是一项绝对关键的技能,因为您最终必须在团队中工作(并且其他人必须能够阅读您的代码)。从 Stack Overflow 的角度来看,它还可以帮助您更快地获得帮助(如果我们无法阅读代码,我们将无法帮助您:P) 很公平。顺便说一句,程序完成了,而且,作为奖励,功能。哇!晚安互联网! 【参考方案1】:

n 变量是在 main 方法中声明的,因此仅在 main 方法中可见,在其他任何地方都不可见,当然在 calcNumFactors 方法内部也不可见。要解决此问题,请为您的 calcNumFactors 方法提供一个 int 参数,该参数将允许调用方法将 int(例如 n)传递给该方法。

public static void calcNumFactors(int number) 
   // work with number in here

然后这样称呼它:

int n = keyboard.nextInt(); 
calcNumFactors(n);

【讨论】:

啊,解决了。非常感谢。【参考方案2】:

你必须在public static void calcNumFactors()中声明变量n

在您的代码中,您必须将 n 的值作为参数传递给函数 calcNumFactors(),正如 Hovercraft Full Of Eels 所说。

【讨论】:

【参考方案3】:
import java.util.Scanner;
public class Lab10Ex1 

   private static int n;

   public static void main(String[] arg) 
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please type a number: ");
     n = keyboard.nextInt(); 
    calcNumFactors();
  
  public static void calcNumFactors()

   System.out.print(n + 1);

  

【讨论】:

【参考方案4】:

就我而言,我从 Grails (.groovy) 项目中复制了一个 Enum 文件,但忘记将扩展名更改为 .java

【讨论】:

以上是关于Java:“错误:找不到符号”的主要内容,如果未能解决你的问题,请参考以下文章

Java(Android)中的新功能。为啥 ANT DEBUG 显示错误“找不到符号”?

FirebaseAuthPlugin.java:9:错误:找不到符号导入 androidx.annotation.NonNull;

如果语句错误,找不到符号

错误:找不到符号(dataOutputStream out)[重复]

找不到符号类RTCClientVideoTracksCallback

错误:找不到符号方法 findViewById(int) [重复]