你好社区,我是初学者,我正在尝试填充变量“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/