Estructuras básicas de programación

NOTA IMPORTANTE:

El estudio de esta sección del tema se recomienda a personas que no conocen las estructuras típicas de programación comunes a la mayoría de lenguajes, tales como los condicionales, los bucles for, los bucles while, las sentencias de ruptura break y continue, etc.

Primero se realiza una somera explicación de los operadores y expresiones que más frecuentemente se utilizan en cualquier lenguaje de programación y, a continuación, se explican las estructuras  mencionadas anteriormente.

Es una sección optativa.

Expresiones

Una expresión es una instrucción o sentencia que devuelve un valor llamado valor de retorno y que asigna a una variable un

Ejemplo 1:

NOTA: los listados que no tienen número de línea no son códigos completos. Sólo muestran las líneas asociadas a la explicación.

Ejemplo 2:

Operadores

Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación.

Tipos:

Aritméticos

Manipulan datos numéricos. Son los siguientes:

NOTA: se muestran algunos ejemplos del operador módulo o resto de la división entera de dos números. Debe tenerse en mente que Dividendo=(Divisor*Cociente)+Resto

Ejemplo 1: 20%7 es igual a 6 ya que 20=7*2+6

Ejemplo 2: 1%3 es igual a 1 ya que 1=3*0+1

Este operador puede aplicarse a números decimales: verificar que

75%3.5=1.5     

7.5%35=7.5       

7.5%3.5=0.5

Ejemplo 1: muestra por consola una serie de resultados asociados a cálculos sencillos realizados con los operadores aritméticos. Todos los códigos en c:\cursojava\tema2 o en jcreator_home\MyProjects\tema2 si se emplea JCreator.

Código fuente

Por consola:

5

1

6

1

1

NOTA: sólo aparece la parte entera de la división por que se trabaja con dos números almacenados en variables enteras. Si se quiere obtener la división incluyendo decimales, bien el numerador o el denominador, deberían declararse como double o float.

Ejemplo 2: se muestra el uso del operador de incremento unitario

Código fuente

Por consola:

Valor de x: 11

Ejemplo 3: se analiza el empleo de los operadores de incremento o decremento cuando se emplean para asignar valores a otras variables

Código fuente

Por consola:

Valor de x: 11

Valor de y: 10

Ejemplo 4:

Código fuente

Por consola:

Valor de x: 11

Valor de y: 11

De asignación

Transfieren datos de una variable a otra. Son los siguientes:

Ejemplo 1:

Código fuente

Por consola:

Valor de z: 8

FIN DE PROGRAMA

Ejemplo 2:

Código fuente

Por consola:

El valor de a es 9 y el de b es 27

FIN DE PROGRAMA

De comparación

Comparan dos datos y devuelven un valor booleano. Son los siguientes:

Ejemplo:

Código fuente

Por consola:

Valor de z: true

FIN DE PROGRAMA

Lógicos

Concatenan expresiones lógicas con objeto de evaluar si es cierto o falso el conjunto de las expresiones. Son los siguientes:

Ejemplo 1:

Código fuente

Por consola:

Valor de z: true

FIN DE PROGRAMA

Ejemplo 2:

Código fuente

Por consola:

Valor de z: true

FIN DE PROGRAMA

Condicional simple if .. else

Se emplea cuando se quiere ejecutar un bloque de código siempre y cuando se cumplan una o varias condiciones. Estas condiciones devuelven un valor booleano, es decir true o false.

Sintaxis:

Ejemplo:

Código fuente

Por consola:

Luis es mayor de edad y puede votar.

Luis tiene 24 años.

FIN DE PROGRAMA

NOTA 1: si el bloque de código del if tienen una sola línea de código no es necesario utilizar llave, aunque si se escribe, no da error. Lo mismo ocurre con el bloque de código alternativo

NOTA 2: si no se escribe el else opcional y no se cumple la condición del if, el programa continúa ejecutándose pasando a las siguientes líneas de código

NOTA 3: si se cambia el valor de la variable int edadLuis a 16, entonces se ejecutará el bloque de código del else. Es decir, por consola se mostrará:

Luis no es mayor de edad y no puede votar

Luis tiene 16 años

Operador ternario

Se emplea para asignar valores a una variable en función del cumplimiento o no de una condición. Su sintaxis se basa en tres términos.

Sintaxis: los paréntesis son opcionales

algunaVariable=(condición que devuelve un valor booleano) ? (valor si devuelve true) : (valor si devuelve false)

NOTA: los valores que se devuelven deben ser compatibles con los que admite la variable que se inicializa

Ejemplo: en este ejemplo se muestra el funcionamiento del operador ternario y se introduce la variable referenciada String, que se utiliza para almacenar cadenas de texto. Se estudiará en profundidad más adelante.

Código fuente

Por consola:

Pedro es mayor de edad y puede votar

Condicional compuesto if .. else if .. else if .. etc .. else

Admite tantas condiciones como necesite el programador. MUY USADO

Sintaxis:

NOTA: si el bloque de código de los if tienen una sola línea de código no es necesario utilizar llaves, aunque si se escriben, no da error. Lo mismo ocurre con el bloque de código alternativo

Ejemplo:

Código fuente

Por consola:

BIENVENIDO AL PROGRAMA

Pedro y Luis son mayores de edad

Pedro y Luis pueden votar

FIN DE PROGRAMA

Condicional switch

Es parecido o similar a la estructura if()...else if()...else if()...else, pero con ciertas limitaciones:

Ejemplo 1:

Código fuente

Por consola:

El operador es +

El operador es *

El operador es /

Operador desconocido

FIN DE PROGRAMA

Explicación:

Se ejecutan todas las instrucciones a partir del segundo case (es el que coincide con la variable operador). Si no hay ningún case coincidente, se ejecuta el código asociado a default.

NOTA 1: no se puede repetir ningún case con el mismo valor. Se produce error de compilación

NOTA 2: si se quiere que el programa, cuando encuentre el primer case coincidente con el valor de la variable evaluada, salga del switch, debe agregarse a cada case la instrucción break del siguiente modo:

Ejemplo 2:

Código fuente

Por consola:

El operador es +

FIN DE PROGRAMA

Bucle for

Estructura utilizada para ejecutar una o varias líneas de código un determinado número de veces. Este número de veces depende del cumplimiento de una condición fijada por el programador.

Sintaxis:

Ejemplo 1: se quiere desarrollar un programa que muestre por consola los números del 0 al 4. En este momento sólo se podría hacer de la siguiente manera:

Código fuente

Por consola:

0

1

2

3

4

FIN DE PROGRAMA

Este ejemplo se hace mucho mejor y con menos trabajo para el programador mediante un bucle for:

Código fuente

Si se modifica la línea System.out.println(i) por System.out.print(i) no se insertará una línea vacía después de cada número, aparecerán todos en la misma línea.

 

Código fuente

Por consola:

01234FIN DE PROGRAMA

Sentencias break, return y continue

Break

Aplicable dentro de bucles y estructuras condicionales de tipo switch. Su ejecución provoca que se salga del bucle o etiqueta que se esté ejecutando sin finalizar el resto de las sentencias asociadas al mismo.

Return

Se utiliza para truncar la ejecución de un método o para almacenar el dato que devuelven. Puede emplearse para truncar bucles cuando no haya más código después del bucle

Ejemplo 1:

Código fuente

Por consola:

0 1 2

Fuera del bucle

NOTA: se sale del bucle en el momento en que i llega a 3.

Si se sustituye break por return, se trunca la ejecución del método main

Por consola:

 0 1 2

Ejemplo 2:

Código fuente

Por consola:

Primera linea de unMetodo

Has introducido 10

FIN DE PROGRAMA

Continue:

Aplicable sólo a bucles. Finaliza la iteración "i" que en ese momento se está ejecutando (significa que no ejecuta el resto de sentencias hasta el final del bucle) y vuelve a analizar la condición del bucle, pero con la siguiente iteración "i+1".

 

Código fuente

Por consola:

0 1 2 4 5 6 7 8 9 10

Fuera del bucle

Bucles anidados

Es uno o más bucles for dentro de otro. Se pueden poner los que se consideren necesarios.

Ejemplo 1:

Código fuente

Por consola:

INICIO DEL PROGRAMA

1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 4.1 4.2 4.3

FIN DE PROGRAMA

Ejemplo 2:

Código fuente

Por consola:

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

41 42 43 44 45

51 52 53 54 55

Bucle while

Estructura utilizada para repetir una o varias líneas de código siempre y cuando se cumpla una condición.

Sintaxis:

NOTA: si el bloque de código que se repite tiene una sola línea no son necesarias las llaves

Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.

Código fuente

Por consola:

0

1

2

3

4

5

FIN DEL PROGRAMA

Bucle do .. while

Es casi igual al anterior: la diferencia estriba en que un bucle do...while se ejecuta, al menos una vez, el bloque de código encerrado dentro del bucle, independientemente del valor booleano que devuelva la condición del while.

Sintaxis:

NOTA: si el bloque de instrucciones que se repite tiene una sola línea no son necesarias las llaves

Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.

Código fuente

Código de caracteres Unicode

Ya se especificó cuando se estudió la variable primitiva char, que Java emplea para representar caracteres este código. Se trata ahora de mostrar por consola los caracteres Unicode del alfabeto occidental sabiendo que están contenidos en el intervalo [0,255]. Para ello se utilizará un bucle for

Código fuente