Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Java para programadores. Devolución de valores

LA SUBRUTINA QUE DEVUELVE VALORES se llama función. Una función determinada, solo puede devolver valores de un tipo concreto, denominado tipo de retorno (return type) de la función. La llamada a una función, normalmente aparece en los lugares en que el ordenador esta esperando encontrarse un valor, como en la parte derecha de una instrucción de asignación, como parámetro en una llamada a subrutina, o en el medio de alguna expresión. Las funciones de valor boleano también pueden ser usadas como condiciones en las instrucciones if, while o do.

También es correcto el emplear una llamada a función en una instrucción como si fuera una subrutina normal. En esta caso, el ordenador ignorará el valor calculado por la subrutina.

Esto a veces tiene sentido. Por ejemplo, la función console.getln(), que devuelve un tipo String, lee y devuelve la línea tecleada por el usuario.

Normalmente esa línea devuelta, es asignada a una variable en una instrucción

«String name=console.getln();«

para que el programa la emplee mas tarde. Sin embargo, esta función también es útil emplearla como subrutina con la llamada

«console.getln();«

para que lea y descargue todo lo que se haya tecleado hasta el siguiente retorno de carro.

Ya hemos visto y usado funciones como Math.sqrt() y console.getInt(). Lo que no hemos visto, es como escribirlas nosotros.

La función, en principio tiene la misma forma que una subrutina, excepto que tiene que especificar el valor que se va a devolver. Esto se puede realizar con la instrucción return, que tiene esta forma:

Esta instrucción solo pueden aparecer en el interior de la definición de la función, y el tipo de la expresión debe ser el mismo que el que se ha especificado como tipo de  retorno para esta función. Cuando el ordenador ejecuta la instrucción  return, evalúa la expresión. finaliza la ejecución de la función y usa el valor de la expresión como valor de retorno de la función.

Dentro de un método ordinario, que ha declarado como tipo de retorno «void» puede utilizar la instrucción return para finalizar la ejecución del método inmediatamente y devolver el control al punto del programa que lo invocó, pero esta instrucción return no puede emplear la expresión.

Es una forma bastante usual de finalizar la ejecución de una subrutina, pero no es obligatorio. Por otra parte, en la función si que es obligatorio la instrucción return con la expresión.

Aquí tenemos una función que podemos emplear en el programa que calcula la secuencia 3N+1. Dado un termino de la secuencia, esta función calcula el siguiente:

Muchos programadores, entre los que me encuentro, prefieren utilizar una instrucción return única, como final real de la función. Esto permite encontrar la instrucción return mas fácilmente. Podemos escoger el escribir la función de esa forma, en el siguiente ejemplo:

Aquí esta la subrutina que emplea nuestra función nextN.En este caso, la mejora frente a la versión original, no es muy grande, pero si nextN() fuera una función larga que realizara cálculos complejos, entonces si que habría tenido sentido el ocultar la complejidad dentro de la función:


Aquí tenemos algunos ejemplos mas sobre funciones. El primero calcula la letra que se ha de colocar según una escala de valores numéricos:

El tipo del valor de retorno de letterGrade() es char. Las funciones pueden devolver cualquier tipo de valor. Aquí tenemos una que devuelve un valor de tipo boolean:

Finalizaré esta sección con la versión completa de programa 3N+1. Esto nos permitirá el emplear la función nextN() en un programa completo.

También tendremos la posibilidad de mejorar el programa definiendo la impresión de los términos de la secuencia en columna, con varios términos en cada línea.

Así haremos la salida mas presentable. La idea es fácil. Tenemos que controlar cuantos términos se ha escrito en la línea actual, cuando el valor alcance un determinado numero, iniciaremos nueva línea.

Para conseguir que los términos aparezcan alineados en columna, usaremos la versión de console.put() con firma put(int,int). El segundo parámetro int indica la anchura de la columna.

Para enseñar otra nueva idea, mi programa especifica el numero de columnas de salida y la anchura de cada columna como constante.

Una constante es como una variable excepto que su valor no puede cambiar nunca mientras el programa este funcionando. (para cambiar el valor, deberá editar el programa y recompilarlo).

Las constantes se emplean en los programas porque es mas fácil recordar y entender un nombre que una constante literal.

En Java, una constante se define utilizando en la declaración de la variable el modificador «final«.

La palabra final, indica que la constante esta en su forma final– que el valor asignado es el final y no puede ser cambiado. Mas adelante, veremos que el modificador final también puede ser usado en la definición de métodos.

 


Descubre más desde Recursos para formacion

Suscríbete y recibe las últimas entradas en tu correo electrónico.

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 216.73.216.163
Proxy: 216.73.216.163
Remote host: 216.73.216.163
Remote port: 51962
** 216.73.216.163, 172.70.80.211