Programming

T03-001-01 - Funciones, procedimientos y métodos.

Enunciado

Valores de retorno.

En muchas ocasiones, los métodos devuelven algún valor como resultado de su ejecución. Ese valor puede ser almacenado en alguna variable o utilizado directamente como sustituto de la invocación.

Ejemplo

Vamos a trasladar el código correspondiente al deseo del usuario de continuar o no a una función elUsuarioQuieraSeguir(), de modo ese método devuelva el valor tecleado por el usuario.

El cambio más importante en ese método es que el modificador void debe ser sustituido por el tipo de dato del valor de retorno. En este momento, el valor de retorno será el número tecleado por el usuario, por lo que el valor de retorno será int:

    static int elUsuarioQuieraSeguir() {
        int seguir;
        Scanner sc = new Scanner(System.in);
        seguir = sc.nextInt();
        return seguir;
    }

El código del método main() quedaría de la siguiente forma:

    public static void main(String[] args) {
        int contador = 1, seguir = 1;
        while (elUsuarioQuieraSeguir() != 0) {
            // Invocamos el método cabecera
            cabeceraTablaMultiplicar(contador);
            tablaDeUnNumero(contador);
            // Invocamos el método pie
            pieTablaMultiplicar(contador);
            contador++;
        }
    }

Ejercicio

Transforma la función elUsuarioQuieraSeguir() de manera que devuelva un boolean, en lugar de int: si el usuario pulsa un número distinto de 0, la función devolverá true y devolverá false si el usuario ha pulsado un 0.

Solución


											
package tablasmultiplicar; import java.util.Scanner; public class TablasMultiplicar { public static void main(String[] args) { int contador = 1, seguir = 1; while (elUsuarioQuieraSeguir()) { // Invocamos el método cabecera cabeceraTablaMultiplicar(contador); tablaDeUnNumero(contador); // Invocamos el método pie pieTablaMultiplicar(contador); contador++; } } static void cabeceraTablaMultiplicar(int contador) { System.out.println("** INICIO TABLA " + contador + " **"); } static void pieTablaMultiplicar(int contador) { System.out.println("** FIN TABLA " + contador + " **\n"); } static void tablaDeUnNumero(int contador) { for (int i = 0; i <= 10; i++) { System.out.println(contador + " x " + i + " = " + contador * i); } } static boolean elUsuarioQuieraSeguir() { int seguir; Scanner sc = new Scanner(System.in); seguir = sc.nextInt(); return seguir == 1 ? true : false; } }

Input

1 1 1 0
1 1 1 1 0

Output

** INICIO TABLA 1 ** 1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 1 x 10 = 10 ** FIN TABLA 1 **
** INICIO TABLA 1 ** 1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 1 x 10 = 10 ** FIN TABLA 1 **