Programación Estructurada en Java - Carlos E. Cimino
Programación Estructurada en Java - Carlos E. Cimino
Cimino
1
Programación estructurada con Java | Carlos E. Cimino
Este documento se encuentra bajo Licencia Creative Commons 4.0 Internacional (CC
BY-NC-ND 4.0).
• No Comercial — Usted no puede hacer uso del material con fines comerciales.
• Sin Derivar — Si usted mezcla, transforma o crea nuevo material a partir de esta
obra, usted no podrá distribuir el material modificado.
2
Programación estructurada con Java | Carlos E. Cimino
Tabla de contenido
Introducción................................................................................................................................................... 5
Acerca de Java .............................................................................................................................................. 6
Conceptos básicos .................................................................................................................................. 6
Breve historia ........................................................................................................................................... 6
Arquitectura .............................................................................................................................................. 7
Instalación ...................................................................................................................................................... 9
El JDK........................................................................................................................................................... 9
Netbeans ................................................................................................................................................. 12
Primeros pasos .......................................................................................................................................... 17
Escribiendo tu primer programa .................................................................................................... 17
Compilando tu primer programa ................................................................................................... 18
Ejecutando tu primer programa ..................................................................................................... 20
Creación de un proyecto en NetBeans ........................................................................................ 21
Ejecución de un proyecto en NetBeans ...................................................................................... 22
Flujo secuencial ......................................................................................................................................... 24
Comentarios........................................................................................................................................... 25
Instrucción de salida ........................................................................................................................... 26
Método println() .............................................................................................................................. 26
Método print() .................................................................................................................................. 27
Caracteres de escape ..................................................................................................................... 28
Tipos de datos primitivos .................................................................................................................. 29
El tipo de dato String ...................................................................................................................... 30
Expresiones aritméticas .................................................................................................................... 30
Operadores aritméticos ............................................................................................................... 30
Operaciones con enteros ............................................................................................................. 31
Variables .................................................................................................................................................. 32
Definición ........................................................................................................................................... 32
Reglas de nombrado ....................................................................................................................... 32
Declaración ........................................................................................................................................ 33
Operador de asignación ................................................................................................................ 34
3
Programación estructurada con Java | Carlos E. Cimino
4
Programación estructurada con Java | Carlos E. Cimino
Introducción
Lo primero que uno tiende a pensar cuando se topa con un libro de programación
estructurada con Java es que el autor no tiene idea de lo que está haciendo. Java es un
lenguaje de programación orientada a objetos, es decir, persigue otro paradigma.
El motivo de esta publicación es abordar los fundamentos de la programación
estructurada mediante la plataforma Java, porque así está previsto el temario del
programa en Argentina para el cual lo realizo, llamado Codo a Codo, que intenta
formar programadores para la industria en un lapso corto de nueve meses.
Aprovecho para agradecer especialmente a mis alumnos de este año, de los pasados y
a los que están por venir. Son quienes me inspiran a plasmar y ordenar mis ideas.
Se espera de ellos que comiencen desde cero hasta llegar a crear aplicaciones gráficas
que interactúen con bases de datos utilizando el paradigma orientado a objetos con
Java. Por cuestiones de tiempos, no es posible mostrar más de un lenguaje durante la
cursada, por lo que los fundamentos básicos deben ser vistos en este lenguaje, para
luego pasar a ver conceptos de objetos (no en este libro), donde realmente se le saca el
jugo.
Pero, si Java es un lenguaje orientado a objetos, ¿cómo se comportará ante el
paradigma estructurado? La realidad es que, en determinados momentos, lo forzaré a
comportarse como un lenguaje estructurado, como digo, "a lo C" (en referencia al
lenguaje C).
En este libro mostraré conceptos básicos como entrada y salida por consola,
estructuras de selección, estructuras de repetición y operadores aritméticos,
relacionales y lógicos. No haré un tratamiento profundo sobre el tema, pues para ello
existe otra publicación de mi autoría llamada INTRODUCCION A LA
PROGRAMACION, donde abordo los fundamentos de la programación de manera
genérica con la ayuda de una herramienta llamada PSeInt.
Además, te daré a conocer otros temas como definir e invocar tus propias funciones
junto a una noción breve del concepto de recursividad, el tratamiento de una de las
primeras y más básicas estructuras de datos llamadas arreglos, con sus algoritmos de
búsqueda y ordenamiento, y, por último, a manejar cadenas de caracteres, donde
indefectiblemente realizarás tus primeras operaciones con objetos.
No te preocupes si aparecen palabras que no comprendés del todo, recordá que
estamos utilizando el lenguaje de una forma para la cual no fue pensado. Es probable
que tengas que toparte con objetos más de una vez. Hay cosas que quizá explique al
pasar para que no te quedes con la intriga y otras donde con toda sinceridad te diré:
"Esto tendrá sentido cuando sepas sobre objetos, por ahora hacelo así y punto".
Hechas las aclaraciones pertinentes, es momento de comenzar a preparar lo necesario
para realizar con éxito los algoritmos descritos en el libro.
¡Te doy la bienvenida!
5
Programación estructurada con Java | Carlos E. Cimino
Acerca de Java
Conceptos básicos
Java es un lenguaje de programación de propósito general, orientado a objetos.
La intención de este es lograr una independencia de la plataforma de ejecución, es
decir, que los programadores desarrollen un programa por única vez pudiendo
ejecutarse en múltiples dispositivos con distinta arquitectura. En inglés, se conoce
como WORA, de "Write Once, Run Anywhere" (Escribilo una vez, correlo donde sea). Con
esto resuelve el problema de la portabilidad que presentan muchos lenguajes, donde la
ejecución de determinado programa en dispositivos diferentes requiere que el código
se recompile.
Desde hace unos años, Java es uno de los lenguajes de programación más populares,
en especial para aplicaciones web cliente-servidor. Está basado en el lenguaje C++, y,
por ende, en C, aunque tiene menos instrucciones de bajo nivel que ellos (en Java, por
ejemplo, no existe el acceso directo a punteros).
Breve historia
En 1991, un equipo dirigido por James Gosling, miembro de Sun Microsystems
(adquirida en 2009 por la empresa Oracle), comenzó el desarrollo de Java, que
finalmente vio la luz en 1995.
La filosofía del lenguaje radicaba en cumplir con las siguientes premisas:
• Fácil de usar.
6
Programación estructurada con Java | Carlos E. Cimino
Desde la versión 1.0, Java ha sufrido diversos cambios y agregado más características.
Actualmente, la última versión es la 10.
Arquitectura
Alguna vez te habrás topado con alguna página web cuyo contenido estuviera basado
en Java, por ejemplo, un chat o un juego. El requisito para ejecutar dicha aplicación es
que "descargues Java", es decir un agregado externo al navegador (en inglés, "plugin")
que lo permita.
Para formalizar un poco las cosas, lo que un usuario promedio hace para correr
programas en Java es descargar la JRE, de "Java Runtime Environment" (entorno de
ejecución de Java). Este entorno incluye los componentes mínimos necesarios para
ejecutar programas desarrollados en Java, donde, entre otras utilidades, se encuentra
la JVM, de "Java Virtual Machine" (máquina virtual de Java).
Cada sistema operativo (Windows, Linux, Mac, entre otros) tiene su propia
implementación de la JVM, habiendo una abstracción con el programa Java y, por
ende, permitiendo la ejecución de este en cualquiera de ellos.
Los programadores no se bastan con correr programas en Java, sino que su tarea es
desarrollarlos. Para ello, deben obtener herramientas adicionales que se empaquetan
y se descargan bajo el nombre de JDK, de "Java Development Kit" (kit de desarrollo de
Java). El JDK incluye al JRE y agrega herramientas para el desarrollo de aplicaciones.
7
Programación estructurada con Java | Carlos E. Cimino
Básicamente, se escribe código en Java en un archivo cuya extensión será .java. Una
vez que el código está listo, se lo compila mediante un compilador llamado javac, a un
código máquina intermedio denominado bytecode. Este bytecode, cuya extensión es
.class, será interpretado y ejecutado por la JVM correspondiente al sistema operativo
donde se encuentre.
8
Programación estructurada con Java | Carlos E. Cimino
Instalación
En este apartado mostraré los pasos necesarios para la instalación de Java, bajo el
sistema operativo Windows, debido a que es el más popular. De todas maneras, la
instalación en Linux, Mac u otros sistemas operativos es muy similar.
El JDK
Para proceder a la instalación del JDK, ingresá a la siguiente web:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html.
Ubicá el apartado con la lista de instaladores, tal como se describe en la siguiente
ilustración (las versiones pueden variar en el futuro, hoy la última es la 8u172):
9
Programación estructurada con Java | Carlos E. Cimino
10
Programación estructurada con Java | Carlos E. Cimino
Como había dicho, el JDK incluye al JRE, por lo tanto, comienza además la instalación
de este último.
Tocá el botón "Next" para pasar a la siguiente ventana:
11
Programación estructurada con Java | Carlos E. Cimino
Netbeans
Si bien es posible escribir código Java en cualquier editor de texto plano, te darás
cuenta de que a la hora de desarrollar necesitarás herramientas que te ayuden al
proceso de codificación.
Un entorno de desarrollo integrado (en inglés, "Integrated Development
Environment", IDE) es una aplicación informática que brinda una serie de servicios y
facilidades al programador, a fin de amenizar su tarea. Entre los IDEs más populares
para desarrollar en Java se encuentran el NetBeans, el Eclipse, el IntelliJ y el BlueJ.
En este libro usaré el NetBeans en su versión en inglés.
Para proceder a la instalación del NetBeans, ingresá a la siguiente web:
https://netbeans.org/downloads/.
Ubicá el apartado con la lista de instaladores, tal como se describe en la siguiente
ilustración:
12
Programación estructurada con Java | Carlos E. Cimino
haga un reemplazo implícito por un punto antes de compilar el código (Java utiliza el
punto como separador de decimales). El programador cree que por utilizar la coma
como separador el código compiló, pero en realidad NetBeans lo reemplazó. Esto no
resulta muy transparente.
NetBeans además permite desarrollar en otros lenguajes. En este caso, debés
descargar la versión únicamente para Java SE ("Standard Edition", edición estándar).
Una vez terminada la descarga, ejecutá el instalador para que se abra la siguiente
ventana:
13
Programación estructurada con Java | Carlos E. Cimino
Asegurate de aceptar el acuerdo de licencia, tildando la opción "I accept the terms in
the license agreement" y tocá el botón "Next" para pasar a la siguiente ventana:
14
Programación estructurada con Java | Carlos E. Cimino
Si deseás que Netbeans se actualice automáticamente cada vez que sea necesario,
tildá la opción "Check for Updates". Tocá el botón "Install" para comenzar la
instalación.
15
Programación estructurada con Java | Carlos E. Cimino
Una vez finalizada la copia de archivos, el instalador informa que la misma se realizó
con éxito. Si tildás la opción "Contribute to the Netbeans project by providing
anonymous usage data", permitirás que Netbeans recopile datos de uso de sí mismo
de manera anónima para futuras actualizaciones. No es obligatorio. Tocá el botón
"Finish" para finalizar.
Así luce Netbeans la primera vez:
16
Programación estructurada con Java | Carlos E. Cimino
Primeros pasos
Antes de crear tu primer programa en Java utilizando la gran ayuda de NetBeans,
primero quiero mostrarte qué pasos tendrías que realizar en caso de no contar con
ningún IDE.
• El nombre del archivo debe ser lo que en el código aparece luego de la palabra
class (la llave de apertura no se tiene en cuenta). Por lo tanto, el nombre debe
ser HolaMundo. La extensión debe ser .java.
• El directorio donde se guarda este archivo debe ser fácil de acceder, pues luego
tendrás que direccionar la consola hacia ese lugar. En este caso voy a elegir a la
carpeta "Escritorio" (en inglés, "Desktop").
17
Programación estructurada con Java | Carlos E. Cimino
18
Programación estructurada con Java | Carlos E. Cimino
Aceptá todas las ventanas. Ya está todo listo para compilar tu primer programa.
Lo siguiente es abrir una consola. En Windows 10, la manera más fácil es buscar "cmd"
o ir al menú "Inicio", ubicar la carpeta "Sistema de Windows" y seleccionar "Símbolo
del sistema".
La consola se direcciona por defecto siempre en la carpeta del usuario, en mi caso:
C:\Users\caemci
Lo que está marcado en rojo puede variar según tu nombre de usuario.
Debés direccionar la consola en la carpeta "Escritorio", y, como la misma se encuentra
dentro de la carpeta de usuario, podemos hacer referencia directamente a ella.
Recordá que tu archivo Java está en "Escritorio". Para direccionar la consola, se usa la
instrucción cd. Ingresá lo siguiente y luego presioná Enter:
cd Escritorio
19
Programación estructurada con Java | Carlos E. Cimino
20
Programación estructurada con Java | Carlos E. Cimino
Habrás visto que es bastante engorroso tener que escribir un código en un editor no
preparado para programar como el Bloc de notas. Por cada cambio, guardar el archivo,
abrir la consola, redireccionarla, compilar y ejecutar. Demasiados pasos, ¿verdad?
Para facilitar este proceso, te hice instalar NetBeans.
Creación de un proyecto en
NetBeans
Había mencionado anteriormente que un programa en Java no consta únicamente de
un solo archivo con código sino también de librerías, clases auxiliares, metadatos y
otros recursos. En este libro de todas maneras, se harán códigos sencillos, que bastan
con un único archivo, ya que no se explica el paradigma orientado a objetos.
Aun así, para realizar un simple programa que muestre una salida por consola como lo
hiciste antes, se requiere previamente crear un proyecto en NetBeans.
Abrí el menú "File" y clickeá la opción "New Project" o el botón para comenzar la
creación:
21
Programación estructurada con Java | Carlos E. Cimino
Asegurate que esté seleccionada la opción "Java Application" y tocá el botón "Next".
A continuación, se muestra la ventana de configuración del proyecto:
Ejecución de un proyecto en
NetBeans
El IDE acaba de crear un proyecto llamado HolaMundo que además de algunas cosas
que no merecen analizarse, cuenta con un archivo llamado igual que el proyecto, cuya
extensión es .java.
En el panel izquierdo se muestran los archivos que componen el proyecto y en el
cuadro grande de la derecha se observa el editor de código.
22
Programación estructurada con Java | Carlos E. Cimino
Para compilar y ejecutar tu programa, ubicá el menú "Run" y tocá la opción "Run
Project" o el botón . Si todo va bien, el propio NetBeans mostrará los resultados a
través de su consola integrada:
23
Programación estructurada con Java | Carlos E. Cimino
Flujo secuencial
Vamos a comenzar con la sintaxis básica de Java. En primer lugar, creá un nuevo
proyecto en NetBeans que se llame "Prueba". Si no modificás ningún otro parámetro
del proyecto, NetBeans creará un archivo llamado Prueba.java, cuyo contenido es
similar al siguiente (recordá que podés borrar todos los comentarios):
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 // Tu primer código va aquí
6 }
7 }
package prueba;
Indica que la clase se encuentra dentro de un paquete llamado prueba (notar que los
paquetes se nombran con minúscula). Un paquete no es más que una carpeta que
agrupa archivos. NetBeans crea un paquete por defecto del mismo nombre que el
proyecto e introduce allí el archivo Prueba.java.
El bloque:
Indica que estamos trabajando dentro de una clase que, en este ejemplo, se llama
Prueba. El concepto de clase pertenece al paradigma orientado a objetos, por lo que
por ahora solo tenés que tener en cuenta que todo tu código Java debe ir dentro de
las llaves que delimitan la clase.
Además, el nombre de la clase debe ser idéntico al nombre del archivo. En este caso,
tendrías la clase Prueba cuyo archivo se llama Prueba.java. No respetar esta similitud
provocará un error de compilación.
El bloque:
24
Programación estructurada con Java | Carlos E. Cimino
Comentarios
Una muy buena práctica a la hora de programar es comentar el código. Esto significa
añadir notas que ayuden a entender alguna instrucción compleja o para describir
tareas pendientes. No son tenidos en cuenta por el compilador, solo sirven para el
programador.
Un comentario de línea se inserta con una doble barra, sin espacios, de esta manera.
Desde un // en adelante, se trata de un comentario.
Un comentario de bloque permite ocupar más de una línea. Se lo utiliza para evitar
tener que poner // por cada línea a comentar. Para realizar un comentario de bloque,
se debe encerrar el contenido entre los delimitadores /* y */.
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 // Esto es un comentario en una línea completa
6 System.out.println("Hola Mundo!"); // Otro comentario
7 /* Esto es un comentario de bloque.
8 Todo lo que escriba entre estos delimitadores
9 no será evaluado por el compilador */
10 }
25
Programación estructurada con Java | Carlos E. Cimino
11 }
Instrucción de salida
Lo primero que vas a aprender es a mostrarles mensajes al usuario por intermedio de
la consola.
Método println()
El método que permite generar una salida por consola, posicionando luego el cursor
en la línea siguiente es println(), que se encuentra dentro del flujo out de la clase
System.
La sintaxis es la siguiente:
System.out.println( <expresión> );
El término <expresión> debe reemplazarse por una verdadera expresión, como una
cadena, una expresión aritmética o booleana, el contenido de una variable, etc. La
expresión se escribe dentro de los paréntesis (), que son obligatorios.
Toda instrucción en Java termina obligatoriamente con un punto y coma.
El siguiente código realiza algunas salidas con println():
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 System.out.println("Una cadena");
6 System.out.println(123); // 123 como entero
7 System.out.println("123"); // "123" como cadena
26
Programación estructurada con Java | Carlos E. Cimino
Método print()
El método que permite generar una salida por consola, posicionando luego el cursor
en la misma línea es print(), que se encuentra dentro del flujo out de la clase
System.
La sintaxis es la siguiente:
System.out.print( <expresión> );
El término <expresión> debe reemplazarse por una verdadera expresión, como una
cadena, una expresión aritmética, el contenido de una variable, etc. La expresión se
escribe dentro de los paréntesis (), que son obligatorios.
Toda instrucción en Java termina obligatoriamente con un punto y coma.
El siguiente código realiza algunas salidas con print():
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 System.out.print("Una cadena");
6 System.out.print(123); // 123 como entero
7 System.out.print("123"); // "123" como cadena
8 System.out.print(2 + 3); // Evalúa y muestra 5
9 }
10 }
El no uso de comillas para una cadena o algún caso de ambigüedad (que abran
comillas y que no cierren, o que no abran y sí cierren) derivará en un error en tiempo
de compilación. Lo mismo ocurre con el uso de los paréntesis.
27
Programación estructurada con Java | Carlos E. Cimino
Caracteres de escape
Los caracteres de escape permiten indicar cierto comportamiento especial, por
ejemplo, el salto de línea o una tabulación. También permiten escribir caracteres por la
consola que son utilizados por el lenguaje, como la doble comilla. ¿Cuáles son las
comillas que abren y cierran una cadena y cuáles son las que se quieren mostrar en la
consola de forma literal?
Los caracteres de escape lo solucionan:
Carácter de escape Nombre Descripción
Borrado a la
\b izquierda
Borra el carácter anterior.
Carácter barra
\\ invertida
Imprime literalmente una barra invertida.
Carácter comilla
\' simple
Imprime literalmente una comilla simple.
Carácter comilla
\" doble
Imprime literalmente una comilla doble.
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 System.out.println("Texto\nen\nlíneas\nseparadas");
6 System.out.println("Texto\tseparado\tpor\ttabulaciones");
28
Programación estructurada con Java | Carlos E. Cimino
1
Unicode es un estándar de codificación de caracteres que define a cada uno de ellos mediante un
número. En el formato UTF-16 que utiliza Java se cuenta con 65536 caracteres diferentes.
29
Programación estructurada con Java | Carlos E. Cimino
El tipo boolean permite alojar un valor lógico de verdad. Los únicos valores posibles
son true (verdadero) o false (falso).
El tipo de dato string con la primera letra minúscula no existe. Intentar utilizarlo
como tipo de dato generará un error de compilación.
Expresiones aritméticas
Una expresión aritmética es aquella que se compone de números y operadores
aritméticos. Toda expresión aritmética es evaluada por el compilador devolviendo un
resultado numérico. Para poder formular expresiones aritméticas, es necesario
conocer los operadores aritméticos de Java.
Operadores aritméticos
Consta de los operadores fundamentales de la aritmética con el agregado del módulo o
residuo, que devuelve el resto que se produce al realizar un cociente entre dos
números.
Operador Nombre Ejemplo Resultado Descripción
30
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 System.out.print(10 / 4); // Evalúa y muestra 2
6 }
7 }
1 package prueba;
2
31
Programación estructurada con Java | Carlos E. Cimino
Si en cierta expresión aparecen dos variables de tipo entera, al menos una de ellas se
puede convertir a double, mediante lo que se denomina "casteo". Lo verás después.
Variables
Definición
Una variable es un espacio reservado en la memoria de la máquina que permite alojar
información. Tal como su nombre lo indica, esta información puede cambiar en el
transcurso del programa, a contraposición de lo que sería una constante.
Reglas de nombrado
Si bien la elección de un identificador para la variable es a elección del programador,
deben tenerse en cuenta ciertas consideraciones:
32
Programación estructurada con Java | Carlos E. Cimino
Es muy importante para la legibilidad y depuración del código, tanto para vos como
para un tercero, que utilices nombres para las variables que describan lo más claro
posible el contenido de estas. Nombrar a todas las variables como p1, x o abcd no es
muy conveniente.
Declaración
Java requiere que se declaren las variables que van a ser utilizadas a lo largo del
programa.
Como buena práctica te sugiero declarar todas las variables al principio del
programa, por más que haya alguna que vayas a utilizar a lo último. Esto permite una
mejor legibilidad del programa.
<tipo> <identificador>;
Por ejemplo:
int edad;
33
Programación estructurada con Java | Carlos E. Cimino
a este dato, ya sea para cargarlo, modificarlo o leerlo es mediante el identificador que
escogí, llamado edad, que, por ahora, no tiene valor.
Operador de asignación
Recordá que hasta ahora las variables no están inicializadas, es decir, su valor es
indefinido.
Hay dos maneras de establecer un valor a una variable. La primera que verás es a
través del operador de asignación que en Java es el =.
Tanto en Java como en muchos otros lenguajes que adoptan al = como operador de
asignación, es fácil confundir su función con el símbolo de igualdad usado en
matemática. Por ello muchos lenguajes formales usan otros símbolos, como <- o :=,
dejando al = para hacer comparaciones. En Java las comparaciones se hacen con el
operador ==.
Por ejemplo:
Si por alguna circunstancia debiera declararse una variable pero que aún no debiera
ser inicializada, se puede realizar la asignación en una línea aparte.
Por ejemplo:
int edad;
edad = 25;
34
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 int a;
6 int b;
7 String cad;
8 double z = 3.45;
9 double res;
10 a = 10;
11 b = 5;
12 res = z / (a + b);
13 cad = "El resultado de z / (a + b) es ";
14 System.out.println(cad);
15 System.out.println(res);
16 }
17 }
Operador de concatenación
Para hacer más atractivas las salidas, se utiliza el operador de concatenación, que en
Java se trata del +. Este permite unir cadenas con otras o con contenidos de variables.
Es indistinto dejarlo pegado o con espacios entre las partes. Donde sí hay diferencia es
dentro de las comillas que delimitan una cadena.
35
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 int a;
6 int b;
7 String cad;
8 double z = 3.45;
9 double res;
10 a = 10;
11 b = 5;
12 res = z / (a + b);
13 cad = "El resultado de z / (a + b) es " + res;
14 System.out.println(cad);
15 }
16 }
36
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 int num;
6 num = 5; // num vale 5
7 System.out.println("num vale " + num); // Muestra 5
8 num = num + 4; // num ahora vale 9
9 System.out.println("num vale " + num); // Muestra 9
10 }
11 }
Operadores incrementales
A la hora de usar contadores, donde en general se incrementa o decrementa el valor de
una variable de a una unidad, Java incorpora dos operadores que simplifican la
instrucción.
Tomando como ejemplo una variable x con valor 12, los operadores actúan de la
siguiente manera:
37
Programación estructurada con Java | Carlos E. Cimino
++ Incremento x++ 13 x = x + 1
-- Decremento x-- 11 x = x - 1
Suma y
+= reasignación
x += a 15 x = x + a
Resta y
-= reasignación
x -= a 9 x = x - a
Multiplicación
*= y reasignación
x *= a 36 x = x * a
División y
/= reasignación
x /= a 4 x = x / a
Módulo y
%= reasignación
x %= a 0 x = x % a
El siguiente programa demuestra cómo se actualiza una variable llamada num
utilizando distintos operadores:
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 int num;
6 num = 5; // num vale 5
38
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 double numero;
6 numero = 3;
7 System.out.println(numero); // Muestra 3.0
39
Programación estructurada con Java | Carlos E. Cimino
8 }
9 }
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 int numero;
6 numero = (int) 3.123456;
7 System.out.println(numero); // Muestra 3
8 }
9 }
Promociones posibles
El siguiente cuadro sintetiza cuáles y cómo son las conversiones posibles entre los
datos, teniendo en cuenta las siguientes referencias:
• Una ✓* indica que la promoción es posible e implícita, pero con posible pérdida
de información.
40
Programación estructurada con Java | Carlos E. Cimino
Casos de ambigüedad
Hay casos donde la representación de un valor puede causar cierta ambigüedad, como,
por ejemplo, tener expresado el valor 2.5. ¿Se trata de un float o de un double?
Con respecto a los reales, todo número se expresa en formato double. Si se requiere
representar un valor como float, se tiene que escribir una f o F junto a él. Por lo
tanto, un 2.5 a secas es un double (también se puede representar como 2.5D) y 2.5F
es un valor float.
Con respecto a los enteros, todo número se expresa en formato int. Si se requiere
representar un valor como long, se tiene que escribir una l o L junto a él. Por lo tanto,
un 183 a secas es un int y un 183L es un long. No hay representaciones para los tipos
byte y short.
Instrucción de entrada
La clase Scanner
La entrada de datos por intermedio del usuario a través del teclado no es tan intuitiva.
Al igual que en el caso de la salida, hay que hacer uso de un método, pero esta vez
importando una clase auxiliar. Se necesita una clase llamada Scanner, que viene
incluida en las librerías de Java, dentro del paquete util.
Lo primero a realizar es la importación de la clase Scanner a nuestro código, de la
siguiente manera:
1 package prueba;
41
Programación estructurada con Java | Carlos E. Cimino
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7
8 }
9 }
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 }
9 }
42
Programación estructurada con Java | Carlos E. Cimino
Para los tipos numéricos, existen los métodos nextByte(), nextShort(), nextInt(),
nextLong(), nextFloat() y nextDouble(), que devuelven el dato del usuario en el
formato que sus propios nombres describen (siempre y cuando lo que el usuario haya
ingresado sea compatible con el tipo de dato esperado).
El siguiente programa lee dos números enteros y muestra la suma de ellos:
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 int a;
9 int b;
10 System.out.print("Ingresá un número: ");
11 a = entrada.nextInt();
12 System.out.print("Ingresá otro número: ");
13 b = entrada.nextInt();
14 System.out.println("La suma de ambos es " + (a + b));
15 }
16 }
43
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 char caracter;
9 System.out.print("Ingresá un texto: ");
10 caracter = entrada.next().charAt(0);
11 System.out.println("Se detectó el caracter " + caracter);
12 }
13 }
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 String nombre;
9 System.out.print("Ingresá tu nombre: ");
10 nombre = entrada.nextLine();
44
Programación estructurada con Java | Carlos E. Cimino
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 int edad;
9 String nombre;
10 System.out.println("Ingresá tu edad: ");
11 edad = entrada.nextInt();
12 System.out.println("Ingresá tu nombre: ");
13 nombre = entrada.nextLine(); // No se lee
14 System.out.println("Hola " + nombre + ". Tenés " + edad + " años.");
45
Programación estructurada con Java | Carlos E. Cimino
15 }
16 }
1 package prueba;
2
3 import java.util.Scanner;
4
5 public class Prueba {
6 public static void main(String[] args) {
7 Scanner entrada = new Scanner(System.in);
8 int edad;
9 String nombre;
10 System.out.println("Ingresá tu edad: ");
11 edad = entrada.nextInt();
12 entrada.nextLine(); // Limpia el buffer
13 System.out.println("Ingresá tu nombre: ");
14 nombre = entrada.nextLine();
15 System.out.println("Hola " + nombre + ". Tenés " + edad + " años.");
16 }
17 }
46
Programación estructurada con Java | Carlos E. Cimino
Uso de funciones
Una función es un trozo de código que resuelve un pequeño problema en particular.
Digamos que no es necesario reinventar la rueda. La misma ya ha sido inventada y solo
requerimos saber usarla.
En este libro verás más adelante cómo definir tus propias funciones. Por ahora, lo que
me interesa es que sepas hacer uso de las que trae Java.
Las primeras funciones que utilizaste son aquellas que provee la clase Scanner para
leer datos por la consola. En realidad, se trata de métodos, pues están dentro de un
objeto, pero el funcionamiento es similar. Más adelante verás la diferencia entre una
función y un método.
La clase Math
Para realizar operaciones matemáticas complejas, como por ejemplo una raíz
cuadrada o un coseno, Java cuenta con una clase llamada Math que incorpora métodos
para realizarlas. No es necesario importarla, sino que basta con escribir su nombre
seguido de un punto y el nombre del método a invocar.
Los métodos más importantes, junto a sus argumentos y el tipo que devuelven, se
detallan a continuación:
Método Descripción Argumentos Ejemplo Devuelve
Un número
cos() Devuelve el coseno en double. cos(0) 1.0
double.
Dos números
Devuelve la potencia en (base y
pow() pow(2,3) 8.0
double. exponente)
double.
47
Programación estructurada con Java | Carlos E. Cimino
Un número
sin() Devuelve el seno en double. sin(0) 0.0
double.
El siguiente programa muestra los resultados de los ejemplos de la tabla anterior para
que los compruebes:
1 package prueba;
2
3 public class Prueba {
4 public static void main(String[] args) {
5 System.out.println("Math.abs(-4.7) vale " + Math.abs(-4.7) );
6 System.out.println("Math.ceil(4.7) vale " + Math.ceil(4.7) );
7 System.out.println("Math.cos(0) vale " + Math.cos(0) );
8 System.out.println("Math.pow(2,3) vale " + Math.pow(2,3) );
9 System.out.println("Math.round(4.7) vale " + Math.round(4.7) );
10 System.out.println("Math.sin(0) vale " + Math.sin(0) );
11 System.out.println("Math.tan(0) vale " + Math.tan(0) );
12 System.out.println("Math.floor(4.7) vale " + Math.floor(4.7) );
13 System.out.println("Math.random() vale " + Math.random() );
14 System.out.println("Math.sqrt(81) vale " + Math.sqrt(81) );
15 }
16 }
48