Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2014, 14:27
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
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