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

ayudacon mi metodo? (devolver factorial)

Estas en el tema de ayudacon mi metodo? (devolver factorial) en el foro de Java en Foros del Web. estoy tratando de hacer un metodo que devuelva la factorial de un numero que se le da, lo trato de hacer con un bucle pero ...
  #1 (permalink)  
Antiguo 10/12/2012, 10:25
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
ayudacon mi metodo? (devolver factorial)

estoy tratando de hacer un metodo que devuelva la factorial de un numero que se le da, lo trato de hacer con un bucle pero no puedo hacer sacar el valor del bucle XD

osea hago que el numero se multiplique con los que tiene atras pero no se como sacar el numero del bucle xd

Código:
    public static int devfact(int x){
        int z;
        int r;
        while (x!=0)
        {
            r=x--;
            z=z+x*r;
        }
si quiero return z, me dice q no esta incializada :l
  #2 (permalink)  
Antiguo 10/12/2012, 11:16
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: ayudacon mi metodo? (devolver factorial)

los tipos primitivos deben declararse inicializados con algún valor, los que permiten inicialización a null son sus wrappers (en tu caso Integer para int).

con declarar int z = 0; int r = 0; ya puedes hacer return sin problemas.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 10/12/2012, 11:32
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: ayudacon mi metodo? (devolver factorial)

gracias :P :P
  #4 (permalink)  
Antiguo 10/12/2012, 13:57
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: ayudacon mi metodo? (devolver factorial)

Cita:
Iniciado por Fuzzylog Ver Mensaje
los tipos primitivos deben declararse inicializados con algún valor
Incorrecto. Es bueno hacerlo, pero no es necesario

De la documentacion de Oracle: (http://docs.oracle.com/javase/tutori...datatypes.html)

Cita:
Default Values

It's not always necessary to assign a value when a field is declared. Fields that are declared but not initialized will be set to a reasonable default by the compiler. Generally speaking, this default will be zero or null, depending on the data type. Relying on such default values, however, is generally considered bad programming style.

The following chart summarizes the default values for the above data types.
Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (or any object) null
boolean false
  #5 (permalink)  
Antiguo 11/12/2012, 02:16
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: ayudacon mi metodo? (devolver factorial)

Cualquier IDE decente ya no te permite declarar un tipo primitivo sin inicializar, por mucho que lo permita el compilador, con lo cual, por mucho que lo diga la documentación que te va a compilar, es mejor considerar como normal que los tipos primitivos se tienen que declarar inicializados.

A efectos prácticos, el que el compilador te permita hacerlo no resuelve el problema del usuario ;)
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #6 (permalink)  
Antiguo 11/12/2012, 02:21
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: ayudacon mi metodo? (devolver factorial)

Cita:
Iniciado por posman Ver Mensaje
Incorrecto. Es bueno hacerlo, pero no es necesario

De la documentacion de Oracle: (http://docs.oracle.com/javase/tutori...datatypes.html)
No te has leído la documentación al completo

http://docs.oracle.com/javase/tutori...datatypes.html

Cita:
Local variables are slightly different; the compiler never assigns a default value to an uninitialized local variable. If you cannot initialize your local variable where it is declared, make sure to assign it a value before you attempt to use it. Accessing an uninitialized local variable will result in a compile-time error.
Cuando es local sí es necesario inicializarla, y como dice Fuzzylog, los IDE te obligan a ello.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
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 05:56.