2015-10-01 1 views
1

Aide s'il vous plaît, je suis nouveau à Java. Je dois utiliser des tableaux, pour, et des sous-programmes pour les devoirs. Ceci est mon code à ce jour:Erreur: ne peut pas trouver le symbole symbole: variable mes emplacement: classe ventasArreglo

import java.util.*; 
import static java.lang.System.out; 
public class ventasArreglo{ 
    static int dias, semanas, i, j; 
    static Scanner kb=new Scanner(System.in); 

    public static void main(String args[]){ 
    dias=5; 
    semanas=4; 
    int mes[][] = new int[semanas][dias]; 
    introducirDatos(); 

    } 

    static void introducirDatos(){ 
    for(i=0;i<semanas;i++){ 
     for(j=0;j<dias;j++){ 
     out.println("Cantidad de Ventas"); 
     mes[i][j]=kb.nextInt(); 
     } 
    } 
    } 
} 

Mais après la compilation je continue à avoir cette erreur: 1 erreur trouvée: [ligne: 20]

Error: cannot find symbol 
    symbol: variable mes 
    location: class ventasArreglo 
+0

Vous obtenez une erreur car votre variable mes n'est pas définie pour toute la classe, mais pour la fonction principale, donc l'autre fonction n'a pas pu y accéder. Vous pouvez passer le tableau à la fonction afin qu'il puisse y accéder. Je vous suggère d'en savoir plus sur la «portée variable» –

Répondre

1

La déclaration de la variable mes devrait être déplacé à l'extérieur de sorte qu'il est visible à la méthode statique introducirDatos:

static int dias, semanas; 
    static int[][] mes; 

    public static void main(String[] args) { 
     dias=5; 
     semanas=4; 
     mes = new int[semanas][dias]; 
     introducirDatos(); 

    } 
    static void introducirDatos(){ 
     Scanner kb=new Scanner(System.in); 
     for(int i=0;i<semanas;i++){ 
      for(int j=0;j<dias;j++){ 
       out.println("Cantidad de Ventas"); 
       mes[i][j]=kb.nextInt(); 
      } 
     } 
    } 

également Scanner devrait être déplacé à l'intérieur de moi là où c'est réellement nécessaire plutôt que de le déclarer statique au plus haut niveau. Les compteurs de boucle ne doivent pas non plus être au niveau supérieur.

Mais pourquoi utilisez-vous des importations statiques? Nous devrions les utiliser avec parcimonie. Comme mentionné dans doc:

So when should you use static import? Very sparingly! Only use it when you'd otherwise be tempted to declare local copies of constants, or to abuse inheritance (the Constant Interface Antipattern). ... If you overuse the static import feature, it can make your program unreadable and unmaintainable, polluting its namespace with all the static members you import.

Cocher cette link ainsi.

+0

Je ne sais pas pourquoi nous utilisons des importations statiques, mon professeur a dit que nous en parlerions plus tard. Il a dit que nous devrions les utiliser. – ricardoryz

+0

@ricardoryz: Les importations statiques doivent être utilisées avec parcimonie. Vérifiez ma modification. –