Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: juankipanki en 24 de Abril 2019, 14:18
-
Hola a todos. Mi propuesta de solución para el ejercicio CU00649B del tutorial de programación Java con ejercicios resueltos. Este es el primer ejercicio que posteo aunque llevo tiempo siguiendo el curso. Gracias por vuestras indicaciones.
/**
* Propuesta de solución al ejercicio CU00649B.
*
* @author juankipanki
* @version 1.0
*/
//Clase
public class PruebaString
{
public PruebaString() {
//Constructor vacío
}
// El metodo getMezclaTextos devuelve en una sola cadena ciertas letras de 3 cadenas dadas.
public String getMezclaTextos(String cadena1, String cadena2, String cadena3)
{
String cadenaAuxiliar =""; //Variable auxiliar
cadenaAuxiliar = cadena1.substring(0,2) + " "
+ cadena2.substring(0,4) + "-"
+ cadena3.substring(0,6);
return cadenaAuxiliar;
}
}
Tengo una pequeña duda: En el método utilizo una variable cadenaAuxiliar. Me pregunto si me la podría haber ahorrado poniendo el resultado directamente con la sentencia return de la forma que pongo abajo o si es más acertado crear una variable más. Muchas gracias.
public String getMezclaTextos(String cadena1, String cadena2, String cadena3) {
return cadena1.substring(0,2)
+" " + cadena2.substring(0,4)
+ "-" + cadena3.substring(0,6);
}
-
Hola Juanki.
Sí, te puedes ahorrar esa variable auxiliar sin problemas. De hecho, cuando uno va a aprendiendo y avanzando en programación, poco a poco va descubriendo que hay muchas cosas que nos podemos "ahorrar" y las instrucciones en el código se reducen drásticamente.
Sin embargo, este "ahorro" a veces provoca ( y no es el caso de tu ejercicio) que no sea evidente lo que hace dicho código.
Es decir, a veces querremos que el código tenga algunas instrucciones de más, aunque sean redundantes, porque al leerlo a simple vista queda más evidente lo que hacen esas instrucciones.
Escoger cuando ser redundante y cuando ser ahorrativo, ya depende de cada uno y de las necesidades del momento.
Al compilador de Java le va a dar igual.
Por ejemplo, imagina que nos piden un método que recibe un valor int con una edad, y el método ha de retornar true si es mayor de edad (18 años o mayor) y false si es menor.
Una forma típica de escribir este método, y que queda muy legible y muy claro lo que hace, sería esta:
public boolean esMayorEdad(int edad) {
if (edad >= 18)
return true;
else
return false;
}
Esto en realidad, se puede resumir así:
public boolean esMayorEdad(int edad) {
return edad >= 18;
}
La primera forma es más redundante, pero más fácil de entender el cométido del código. Puede resultar más didáctico.
La segunda forma es más ahorrativa, incluso más eficiente al reducir instrucciones ( y ahorrar quizás algunos nanosegundos jeje ), pero a ojos de alguien que esté aprendiendo a programar, puede resultar confuso.
Escoger una forma u otra, dependerá de si vamos a compartir ese código con alguien, y según con quien lo compartimos.
Volviendo al caso de tu ejercicio, incluso omitiendo el uso de una variable auxiliar queda bastante evidente lo que está haciendo el código, así que puedes ahorrartela sin ningún problema.
-
Muchísimas gracias por tu respuesta. Siento no haberla podido leer antes, pero estoy un poco atareado con cosas personales y no he tenido tiempo. Gracias de nuevo.