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

我是计算机科学专业的一年级学生,并尝试使用该代码编写用于作业的程序;

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);

  }

}

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



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

最佳答案

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);

09-18 09:56