ESTRUCTURAS DE CONTROL
Este término suena un poco extraño,
¿cierto? Pues, lo voy a explicar de este modo: las estructuras de control son
una serie de líneas que nos permiten comprobar que se está cumpliendo una
condición y también nos permiten realizar acciones repetitivas.
Por ejemplo, si tenemos un juego
que pida tu nombre y si eres hombre o mujer, y quieres que dependiendo de eso muestre
un personaje masculino o femenino, esto lo podemos hacer con las estructuras de
control.
Descarga la aplicación de ejemplo
(la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu
celular). Descargar App
Otro ejemplo: si tenemos una aplicación
que quieres que obtenga 10 números aleatorios entre 0 y 100, y quieres que los
muestre en la pantalla, necesitarás conocer las estructuras de control para
hacerlo.
Descarga la aplicación de ejemplo
(la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu
celular). Descargar App
En estos dos ejemplos que hemos
mencionado se hace uso de las estructuras de control, sin embargo, se usan
estructuras de control diferentes. Hay dos grupos de estructuras de control:
- Estructuras de control condicionales.
- Estructuras de control repetitivas (también llamados bucles).
Estructuras de Control Condicionales
Este grupo de estructuras nos van a
permitir realizar una acción u otra siempre y cuando se cumpla con una
condición. En nuestro primer ejemplo, al principio de este tema, al mostrar una
u otra imagen dependiendo de si eliges hombre o mujer, ilustra el uso de las
estructuras de control condicionales. En este grupo tenemos dos estructuras de
control: if/else y switch. Las veremos a continuación.
- if/else: veamos cómo se construye y un ejemplo.
Estructura
|
Notas
|
if (condición){
acción
a realizar;
} else {
acción a realizar;
}
|
Para construir esta
estructura de control debemos hacerlo tal cual como se muestra. Las palabras
que están en cursiva las decidimos
nosotros, dependiendo de lo que queramos en nuestra aplicación/juego.
|
Ejemplo
|
Notas
|
if (monedas == 0){
terminarJuego = true;
} else {
monedas
-= 1;
}
|
Aquí tenemos una
variable de tipo numérico: “monedas”; y otra variable de tipo boolean: “terminarJuego”.
Lo que hace esta estructura de control es: si (if) monedas es igual a cero,
el juego termina, de otra forma (else), se le resta 1 a monedas. Nota la
utilización de los operadores relacionales para colocar la condición.
|
Descarga un ejemplo de código en el
que se utiliza esta estructura de control (Idioma Español). Descargar
Código
Descarga la aplicación de ejemplo “if_else”
(la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu
celular). Descargar App
- switch: permite un control condicional múltiple. Veamos cómo se construye y un ejemplo.
Estructura
|
Notas
|
switch (variable){
case valor1:
acción a realizar;
break;
case valor2:
acción a realizar;
break;
case valorX:
acción a realizar;
break;
default:
acción a realizar;
break;
}
|
Para construir esta
estructura de control debemos hacerlo tal cual como se muestra. Las palabras
que están en cursiva las decidimos
nosotros, dependiendo de lo que queramos en nuestra aplicación/juego. La
variable puede ser numérica o de otro tipo. valor1, valor2 y valorX son los distintos valores que
puede tomar la variable. Siempre es necesario colocar “break;” porque si no
ocurrirá un error. En el caso de que no se cumpla con alguna de las
condiciones colocadas (case), ocurre la acción colocada en default. Podemos
colocar cuantos “case” queramos.
|
Ejemplo
|
Notas
|
switch (lugar){
case 1:
premio = 100;
break;
case 2:
premio = 50;
break;
case 3:
premio = 20;
break;
default:
premio = 0;
break;
}
|
Imaginemos un juego de
carrera de motos donde debemos competir con otros y ganar dinero para comprar
piezas para la moto. Aquí tenemos dos variables de tipo numérico: “lugar” y
“premio”. Lo que hace esta estructura de control es: si el jugador llegó de
1er lugar el premio es 100$, si llegó de 2do lugar el premio es 50$, si llegó
de 3er lugar el premio es 20$; si no llegó de 1ro, 2do o 3ro, se cumple la
acción colocada en default (el premio es 0$).
|
Descarga un ejemplo de código en el
que se utiliza esta estructura de control (Idioma Español). Descargar
Código
Descarga la aplicación de ejemplo
“switch” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de
tu celular). Descargar App
Estructuras de Control Repetitivas (Bucles)
Este grupo de estructuras nos van a
permitir realizar una acción una y otra vez. Algo interesante es que las
estructuras de control repetitivas también dependen de una condición; es decir,
la acción se repetirá una y otra vez siempre y cuando se siga cumpliendo la
condición impuesta. En nuestro segundo ejemplo, al principio de este tema, al
obtener una y otra vez un número aleatorio estamos haciendo uso de las
estructuras de control repetitivas, y la condición sería que se obtendrán
números aleatorios hasta que ya se tengan 10 números. En este grupo tenemos tres
estructuras de control: for, while y do/while. Las veremos a continuación.
- for: es el más simple. Veremos cómo se construye y un ejemplo.
Estructura
|
Notas
|
for (contador ; condición ; incremento){
acción a realizar;
}
|
Lo que hace es repetir
la acción mientras se cumpla la condición.
El contador es el que lleva la
cuenta. La condición se coloca
igual que se hizo en if (con operadores relacionales).
El incremento es cuánto se le va a
sumar al contador cada vez que se
cumpla la acción a realizar.
|
Ejemplo
|
Notas
|
for (int cuenta = 1; cuenta <= 10; cuenta++){
numero
+= cuenta;
}
|
Aquí tenemos una
variable numérica de tipo int (el tipo int es el más comúnmente usado):
“valor”. Lo que hace esta estructura de control es: le suma el valor de
“cuenta” a “numero” con cada vuelta; esto se hará mientras se cumpla la
condición. Con cada vuelta se incrementa el valor de cuenta en una unidad
(cuenta++). Cuando cuenta sea igual a 10 se detendrá el bucle.
|
Descarga un ejemplo de código en el
que se utiliza esta estructura de control (Idioma Español). Descargar
Código
Descarga la aplicación de ejemplo “for”
(la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de tu
celular). Descargar App
- while:
Estructura
|
Notas
|
while (condición){
acción a realizar;
}
|
Repite una acción
mientras se cumpla la condición.
|
Estructura
|
Notas
|
while (cuenta <
100){
cuenta++;
}
|
Tenemos una variable de
tipo numérico: “cuenta”. Lo que hace este bucle es: aumenta el valor de
cuenta en una unidad con cada vuelta (acción), mientras cuenta sea menor a
100 (condición).
|
Descarga un ejemplo de código en el
que se utiliza esta estructura de control (Idioma Español). Descargar
Código
Descarga la aplicación de ejemplo
“while” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de
tu celular). Descargar App
- do/while:
Estructura
|
Notas
|
do {
acción a realizar;
} while (condición);
|
Es similar a while
con la diferencia de que la acción siempre se ejecutará al menos una vez, y
esto es debido a que primero realiza la acción y después comprueba si se
cumple la condición.
|
Estructura
|
Notas
|
do {
cuenta++;
} while (cuenta <
100);
|
Tomando la variable
“cuenta” del ejemplo anterior, lo que hace este bucle es: aumenta el valor de
la variable en una unidad y después comprueba si cuenta es menor a 100. Si
por ejemplo, el valor inicial de cuenta es 200, el bucle le sumará una unidad
a cuenta antes de darse cuenta de que la condición no se cumple.
|
Descarga un ejemplo de código en el
que se utiliza esta estructura de control (Idioma Español). Descargar
Código
Descarga
la aplicación de ejemplo “do_while” (la aplicación se adapta a 2 idiomas,
inglés y español, dependiendo de tu celular). Descargar
App
ESTRUCTURAS DE DATOS
Aquí en estructura de datos lo que
vamos a ver son dos elementos: El String y los arrays.
String
Un String es un elemento de Java
que nos permite almacenar una cadena de caracteres (secuencia de letras), por
ejemplo, “Hola, me llamo Arán”. Algo que siempre debemos tener en cuenta es que
las cadenas de caracteres van encerradas entre comillas (“”).
Para crear una variable de tipo
String se hace como vimos en el capítulo de variables:
- Primero se coloca el tipo de variable, en este caso será String.
- Luego se coloca el nombre de la variable, en este caso la llamaremos texto.
Tenemos entonces nuestra variable: String
texto, y podemos asignarle un valor a través del operador “=”: String
texto = “Hola, me llamo Arán”;. También podemos asignarle el valor de
una variable de tipo String a otra del mismo tipo: String cadena = texto;,
en este ejemplo, el valor de la variable “cadena” será “Hola, me llamo Arán”.
También es posible usar el operador “+” para hacer una cadena de caracteres a
partir del valor de diversas variables de tipo String, o variables String y
numéricas; veamos cómo:
Variables
|
Ejemplo
|
Significado
|
String texto1 = “Hola,”;
|
String cadena = texto1 +
texto2 + texto3 + texto4;
|
cadena = “Hola, me llamo
Arán”;
|
String texto2 = “ me”;
|
||
String texto3 = “ llamo”;
|
String cadena = texto4 +
texto2 + texto6 + texto3;
|
cadena = “ Arán me años
llamo”;
|
String texto4 = “ Arán”;
|
||
String texto5 = “ y
tengo ”;
|
String cadena = texto1 +
texto2 + texto3 + texto4 + texto5 + edad + texto6;
|
cadena = “Hola, me llamo
Arán y tengo 20 años”;
|
int edad = 20;
|
||
String texto6 = “ años.”;
|
Nota: Algo importante que debes notar es que al principio de las cadenas
hay un espacio en blanco (un espacio), esto es para que cuando se peguen las
cadenas las palabras queden separadas. Si no hubiera puesto los espacios
en blanco el resultado de cadena en el
primer ejemplo sería “Hola,mellamoArán”. Debes notar también que al final de
texto6 hay un espacio en blanco, el cual es para que la edad quede separada y
no pegada. Si no hubiera puesto ese espacio en blanco al final del texto6 el
resultado de cadena en el tercer ejemplo sería cadena = “Hola, me llamo Arán y
tengo20 años”.
Arrays
Un array es como una caja que
contiene elementos de un mismo tipo y que tienen un mismo nombre. Pero, te
preguntarás ¿cómo es esto?, porque en el capítulo de variables vimos que no
pueden haber dos o más variables con el mismo nombre, pues es sencillo, y lo
explicaremos con un ejemplo gráfico.
En este ejemplo vemos que dentro de
la caja hay varios elementos, los cuales son variables. Estas variables tienen
el mismo nombre que la caja pero se enumeran usando corchetes ([]). Veamos el
siguiente ejemplo.
En este ejemplo tenemos un array de
tipo numérico. ¿Cómo sabemos que es un array?, pues los arrays se definen igual
que una variable normal (tipo y nombre), pero con la diferencia de que
inmediatamente después del tipo se colocan unos corchetes ([]). Pero, ¿para qué
son estos corchetes?, bueno, los corchetes nos van a permitir determinar
cuántos elementos tendrá la caja dentro y nos va a permitir hacer referencia a cada
uno de esos elementos, como vemos en el ejemplo (aNum[0], aNum[1],...).
Veamos un ejemplo real en
programación:
Ejemplo
|
Notas
|
int[] datos;
|
En la primera línea
vemos cómo se define un array, en este caso de tipo numérico. Vemos el tipo:
int; y el nombre: datos.
En la segunda línea
vemos el array y cómo se determina cuántos elementos contendrá, en este caso,
10.
Podemos definir el array
y de una vez determinar cuántos elementos contendrá, como se muestra en la
tercera línea.
|
int[] datos = new
int[10];
|
|
int[] datos;
datos = new int[10];
|
Para hacer referencia a un elemento específico dentro del array lo
especificamos con un número dentro de corchetes; por ejemplo, si tenemos un
array de 2 elementos y queremos colocar que el valor del primer elemento sea
1000, lo hacemos así:
Ejemplo
|
Notas
|
int[] puntos = new int[2];
puntos[0] = 1000;
|
Vemos en la segunda línea que para acceder a una variable específica
usamos los corchetes. También es importante destacar que si tenemos un array
de 2 elementos, los elementos serán [0] y [1]; si tenemos un array de 1000
elementos, los elementos serán [0],..., [999]. Siempre se comienza con el
cero.
|
Haz clic aquí para descargar un
ejemplo de código en el que se utilizan los arrays (Idioma Español). Descargar
Código
Descarga la aplicación de ejemplo
“arrays” (la aplicación se adapta a 2 idiomas, inglés y español, dependiendo de
tu celular). Descargar App
Nota: al crear un array, éste puede ser de cualquier tipo.
En este caso vimos un ejemplo con arrays numéricos, sin embargo, los arrays
pueden ser de tipo String (String[]), boolean (boolean[]), de tipo InputStream
(InputStream[]), de otro tipo numérico (short[], long[], float[], double[]);
siempre que se le coloquen los corchetes ([]), luego del tipo de variable, será
un array.
No hay comentarios.:
Publicar un comentario