web-dev-qa-db-fra.com

Java: "erreur: impossible de trouver le symbole"

(Erreur de débutant, je suis sûr.)

Je suis un étudiant en informatique de première année, et j'essaie d'écrire un programme pour un devoir, avec le 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);

  }

}

Mais lors de la compilation, j'obtiens l'erreur;

Lab10Ex1.Java:10: erreur: impossible de trouver le symbole System.out.print (n + 1); ^

symbole: variable n

emplacement: classe Lab10Ex1

Si quelqu'un pouvait m'expliquer ce que j'avais fait de mal ou comment y remédier, je l'apprécierais grandement.

5
Skelatox

La variable n a été déclarée dans la méthode main et n'est donc visible que dans la méthode main, nulle part ailleurs, et certainement pas à l'intérieur de la méthode calcNumFactors. Pour résoudre ce problème, donnez à votre méthode calcNumFactors un paramètre int qui permettrait aux méthodes d'appel de passer un int, tel que n dans la méthode.

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

et appelez-le ainsi:

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

Vous devez déclarer la variable n dans public static void calcNumFactors()

Dans votre code, vous devez passer la valeur de n comme argument à la fonction calcNumFactors() comme l'a dit Hovercraft Full Of Eels.

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

  }
}
0
ricky