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

Uso de Return no lo comprendo

Estas en el tema de Uso de Return no lo comprendo en el foro de Java en Foros del Web. Hola, al crear una funcion o un metodo casi siempre ponen un return, significa que devuelve el valor indicado. ¿como eso que devuelve valor?, es ...
  #1 (permalink)  
Antiguo 26/10/2014, 19:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 153
Antigüedad: 12 años, 5 meses
Puntos: 7
Uso de Return no lo comprendo

Hola,

al crear una funcion o un metodo casi siempre ponen un return, significa que devuelve el valor indicado.

¿como eso que devuelve valor?, es lo mismo que cuando uno tiene un resultado de algo ?

no me queda claro aun.
__________________
Mi mail: [email protected]
  #2 (permalink)  
Antiguo 27/10/2014, 02:20
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Uso de Return no lo comprendo

Buenas,

No entiendo que es lo que no entiendes. Las funciones por definicion a partir de una serie de parametros producen una salida: http://es.wikipedia.org/wiki/Funci%C...atem%C3%A1tica

Puedes poner un ejemplo de que es lo que no te queda claro?


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 27/10/2014, 14:27
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Uso de Return no lo comprendo

Es muy fácil, si lo que quieres es que te devuelvan un valor después de unos cálculos, pones una función del tipo de dato que quieres recoger, y a esa función le puedes pasar parámetros si quieres, y si no no. Esos parámetros no tienen por qué ser del mismo tipo de datos que quieres que te devuelvan, puede ser de otro tipo de dato.

Por otra parte, puedes querer simplemente trabajar con datos accesibles desde un método, pero no quieres que el método te devuelva nada. En ese caso, usas el llamado void. A este void también se le pueden pasar parámetros.

Ejemplo:.
Código:
public static void main(String[] args){
	System.out.println(getNumero(1))
}
En este caso, el método println te pide como parámetro un String, así pues... el método getNumero(parámetro int=1) te debe de devolver un valor de tipo String.

Código:
String getNumero(int n){
	if (n==1)return "Uno";
	else if (n==2)return "Dos";
	else return "Ni Uno ni Dos";
}
Ahora bien, si lo que quieres es ejecutar una serie de instrucciones pero no necesitas que te devuelvan ningún valor, entonces usas un void.

Código:
public static void main(String[] args){
	escribeNumero(1);
]
void escribeNumero(int n){
	if (n==1)System.out.println("Uno");
	else if (n==2)System.out.println("Dos");
	else System.out.println("Ni Uno ni Dos");
}
Y entonces... cuando usar uno y cuando usar otro? Pues eso depende de lo que quieras usar tú, que eres el programador, en cada momento. Para hacer unas cosas preferirás usar un método que te calcule un dato que necesitas para hacer otra cosa, o sí simplemente quieres que se ejecuten una serie de instrucciones.

Yo por ejemplo, para un tetris que estoy haciendo uso mucho este esquema if (método buleano hacesible==true)haz();...
por ejemplo, cuando relleno una línea y quiero que desaparezca... while (lineable()==true)linear();. En este caso... necesito que lo que hay en la condición del while me devuelva un valor booleano para compararlo con el valor true. Por eso es un método de tipo booleano que hace unos cálculos y devuelve un booleano, pero el método linear no necesito que me devuelva nada, solo necesito que ejecute los procesos necesarios para encontrar una línea completa y eliminarla.

Pero eso es porque yo he decidido organizarlo asi. Tú eres el programador y tú decides la manera en la que se desarrolla tu programa.

Última edición por Kritik; 27/10/2014 a las 14:53

Etiquetas: return, valor
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 12:57.