java - java中变量numeros可能尚未初始化编译错误?

标签 java

你好社区,我是初学者,我正在尝试填充变量“numeros”,创建一个名为“Llenar”的方法并且它有效,但是当我尝试调用方法“EncuentraMayor”时,在第二种情况,我得到变量“numeros”可能尚未初始化。我认为它是在第一种方法上初始化的。感谢您的帮助。

do{
    System.out.print(menu+"\nIngrese el numero de opcion");
    opcion=leer.nextInt();

    switch(opcion){

        case 1:
            numeros=Llenar();  
            for(int i=0;i<numeros.length;i++)         
                System.out.println(numeros[i]);
        break;

        case 2:
            int[]r;
            r=EncuentraMayor(numeros);
            System.out.print("El numero mayor ingresado es: "+r[0]+"."+"\nSu posicion es: "+r[1]);
        break;

        case 3:
            EncuentraMenor(numeros);
        break;

    }    
}while((opcion>0)&&(opcion<4));

public static int[] Llenar(){
    Scanner leer = new Scanner(System.in);
    int[] x;
    int n=0;
    System.out.print("¿Cuantos numeros va a ingresar?");
    n=leer.nextInt();
    x= new int[n];
    for(int i=0;i<x.length;i++){
       System.out.print("Ingrese numero "+i+1);
       x[i]=leer.nextInt();
    }    
    return x;
}
public static int[] EncuentraMayor(int[]x){
    int mayor=0,pos=0;
    int r[] = new int [2]; 
    mayor=x[0];
    for(int i=0;i<x.length;i++){
        if(mayor<x[i]){
            mayor=x[i];
            pos=i;
        }
    }
    r[0]=mayor;
    r[1]=pos;
    return r;
}

最佳答案

numeros 仅在第一个 case 中分配。该变量根本不在其他变量的范围内,因此会出现错误。您需要在 switch 语句之前或在每个 case 内单独声明变量。

关于java - java中变量numeros可能尚未初始化编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34982611/

相关文章:

java - 您可以在 Coldfusion 中编写 Web 服务调用而不使用 createObject ("webservice"....i.使用Java

java - 程序流程问题

java - 未在 JMS listner 非 Activity 类 android 中获取应用程序上下文

java - 在关闭时保留 Guava 缓存

java多线程用于任务之间的同步

java - 如何使用 Selenium WebDriver 截取屏幕截图

java - Android - 创建 Youtube fragment 时出错

java - 为 Java 定制 --module-path

java - 是 javax.naming.InitialContext ThreadSafe

java - HashMap问题: Algorithm that I am trying to figure out