Foros del Web » Programación para mayores de 30 ;) » Java »

Global Array

Estas en el tema de Global Array en el foro de Java en Foros del Web. Cita: C:\putamadre.java:16: missing return statement } ^ C:\putamadre.java:27: missing return statement } ^ C:\putamadre.java:38: missing return statement } ^ 3 errors Process completed. Cita: class ...
  #1 (permalink)  
Antiguo 23/01/2009, 13:22
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 0
Global Array

Cita:
C:\putamadre.java:16: missing return statement
}
^
C:\putamadre.java:27: missing return statement
}
^
C:\putamadre.java:38: missing return statement
}
^
3 errors

Process completed.

Cita:
class putamadre{

// Variables Globales
static int i;
static double resultados[]=new double[2],Celsius=90.0,Kelvin=90.0,Fahr=90.0;

//Método Celsius a F y a K
public static double CelsFahKel(double Fahr,double Kelvin){

resultados[1]=(Fahr-32)/(1.8);
resultados[2]=Kelvin-273.15;

for(i=1;i<=2;i++){
return resultados[i];
}
}

//Método Fahrenheit a C y a K
public static double FahCelsKel(double Celsius,double Kelvin){

resultados[1]=Celsius*1.8+32;
resultados[2]=9/5*Kelvin+32;

for(i=1;i<=2;i++){
return resultados[i];
}
}

//Método Kelvin a C y F
public static double KelCelsFah(double Celsius,double Fahr){

resultados[1]=Celsius+273.15;
resultados[2]=(Fahr-32)*5/9;

for(i=1;i<=2;i++){
return resultados[i];
}
}

//Método Main
public static void main(String args[]){

CelsFahKel(Fahr,Kelvin);
System.out.println("Celsius a Fahrenheit :"+resultados[1]+" Celsius a Kelvin:"+resultados[2]);
FahCelsKel(Celsius,Kelvin);
System.out.println("Fahrenheit a Celsius:"+resultados[1]+" Fahrenheit a Kelvin:"+resultados[2]);
KelCelsFah(Celsius,Fahr);
System.out.println("Kelvin a Celsius:"+resultados[1]+" Kelvin a Fahrenheit:"+resultados[2]);


}//Fin de Main

}//Fin de clase

Última edición por AlvaradoGunner; 23/01/2009 a las 13:32
  #2 (permalink)  
Antiguo 23/01/2009, 13:34
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Global Array

Mete esa línea en un bloque static:

Código:
static {
    resultados =new double[2]; 
}
O si prefieres, pon el new double[2] en la propia declaración:

Código:
static double[] resultados = new double[2];
Eso sí, lo que haces con los bucles y los return, no tiene sentido y te va a dar problemas. Y en los arrays, los índices empiezan en 0, así que no es resultados[1] y resultados[2], sino resultados[0] y resultados[1].
  #3 (permalink)  
Antiguo 23/01/2009, 13:51
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Global Array

Entonces como puedo regresar dos variables en una sola clase?
  #4 (permalink)  
Antiguo 23/01/2009, 16:23
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Global Array

Vamos por partes.

1. Un método únicamente puede devolver 1 valor.
Esto no hay forma de cambiarlo. Java es así.

2. Lo que puedes devolver es un objeto que contenga otros objetos (o valores).
Por ejemplo, puedes hacer que tus métodos devuelvan arreglos.

Código java:
Ver original
  1. public static double[] FahCelsKel(double Celsius,double Kelvin){
  2.     // ...
  3.     // Aquí lo que el método tendrá que devolver es un array de doubles.
  4. }

O igualmente puedes devolver otro tipo de listas (ArrayList, por ejemplo).

También puedes, como te han dicho en el otro hilo, devolver un tipo de objeto propio que contenga tus dos valores. Te creas tu propia clase... Temperatura...

Código java:
Ver original
  1. public class Temperatura {
  2.     double kelvin, celsius, fahrenheit;
  3.    
  4.     public double getKelvin() { return kelvin; }
  5.     public double getCelsius() { return celsius; }
  6.     public double getFahrenheit() { return fahrenheit; }
  7.  
  8.     public double setKelvin(double kelvin) { this.kelvin = kelvin; }
  9.     public double setCelsius(double celsius) { this.celsius = celsius; }
  10.     public double setFahrenheit(double fahrenheit) { this.fahrenheit = fahrenheit; }
  11. }

Entonces te creas un objeto de esa clase y metes ahí los valores y devuelves ese objeto.
Código java:
Ver original
  1. public static Temperatura FahCelsKel(double Celsius,double Kelvin){
  2.     // ...
  3.     // Aquí lo que el método tendrá que devolver es un objeto Temperatura
  4. }


3. En realidad no deberías hacer esto.
Sería mejor si plantearas el asunto de otra forma más ordenada, no usaras una variable global para los resultados, hicieras una clase que fuera más autocontenida, etc.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:01.