Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: "error: cannot find symbol"

(Rookie mistake, I'm sure.)

I'm a first year computer science student, and attempting to write a program for an assignment, with the code;

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

  }

}

But upon compiling, I get the error;

Lab10Ex1.java:10: error: cannot find symbol System.out.print(n + 1); ^

symbol: variable n

location: class Lab10Ex1

If someone could explain to me what I've done wrong, or how to fix it, I would greatly appreciate it.

like image 554
Skelatox Avatar asked Nov 22 '13 05:11

Skelatox


2 Answers

The n variable was declared in the main method and thus is visible only in the main method, nowhere else, and certainly not inside of the calcNumFactors method. To solve this, give your calcNumFactors method an int parameter which would allow calling methods to pass an int, such as n into the method.

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

and call it like so:

int n = keyboard.nextInt(); 
calcNumFactors(n);
like image 159
Hovercraft Full Of Eels Avatar answered Oct 31 '22 22:10

Hovercraft Full Of Eels


You must declare the variable n in public static void calcNumFactors()

In your code, you have to pass the value of n as an argument to the function calcNumFactors() as Hovercraft Full Of Eels said.

like image 25
Linga Avatar answered Oct 31 '22 23:10

Linga