PDF de programación - PROGRAMACIÓN (PRG) - Tema 3 - CONDICIONES Y ELECCIÓN

Imágen de pdf PROGRAMACIÓN (PRG) - Tema 3 - CONDICIONES Y ELECCIÓN

PROGRAMACIÓN (PRG) - Tema 3 - CONDICIONES Y ELECCIÓNgráfica de visualizaciones

Actualizado el 24 de Noviembre del 2018 (Publicado el 24 de Enero del 2017)
1.350 visualizaciones desde el 24 de Enero del 2017
97,2 KB
12 paginas
Creado hace 22a (27/09/2001)
PROGRAMACI ÓN (PRG). EUI. Curso 2001/2002
Tema 3. CONDICIONES Y ELECCI ÓN

F. Marqués y N. Prieto

Índice General

1 Condiciones simples

2 El tipo lógico

2.1 Operadores de comparación . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Comparación de cadenas (strings) . . . . . . . . . . . . . . . . . . . . .
2.3 Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Precedencia de operadores . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Instrucciones condicionales

3.1
3.2

Instrucción "if...else..." . . . . . . . . . . . . . . . . . . . . . . . .
Instrucción "switch..." . . . . . . . . . . . . . . . . . . . . . . . . . .

4 El operador ternario

5 Tratamiento de errores. Introducción a las excepciones

5.1 Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Tratamiento básico de errores . . . . . . . . . . . . . . . . . . . . . . . .

6 Ejercicios

1 Condiciones simples

1

2
3
3
4
5

5
6
7

8

9
10
10

11

Una característica de los programas que se han visto hasta el momento es que consisten
tan solo en una secuencia de instrucciones que se ejecuta inalterablemente. Sin embargo,
en la resolución de un problema es a menudo necesario tomar decisiones en función de las
características del mismo, esto es, se necesita poder alterar la secuencia de cálculos que
se efectúan en función de los datos de entrada, o de resultados obtenidos con antelación.
Las instrucciones condicionales, que se estudiarán seguidamente, permiten construir
programas que tomen decisiones acerca de los cálculos a efectuar en función de las
características del problema.

Supóngase, por ejemplo, que se desea determinar si cierta variable temperatura
tiene un valor mayor o menor que 100 (escribiendo un mensaje según lo sea o no). Esto
podría expresarse mediante las instrucciones:

1

2 EL TIPO L ÓGICO

if (temperatura>100)

2

pantalla.writeln("La temperatura es mayor que 100!");
else pantalla.writeln("La temperatura es menor o igual que 100");

.....

Para ejecutar esta instrucción se determina, en primer lugar, la verdad o falsedad de
la condición. Si la variable temperatura tiene un valor mayor que 100 (la condición es
cierta), entonces se escribirá el primer mensaje; si no es así, esto es si la variable tiene
un valor menor o igual que 100 (la condición es falsa) se escribirá el segundo mensaje.
Una vez escrito el mensaje correspondiente, la ejecución del programa continuará en la
instrucción siguiente (que en el ejemplo aparece indicada mediante puntos suspensivos).
Tanto después de la condición, como despues de la palabra else, es posible escri-
bir cualquier instrucción, por ejemplo otra instrucción condicional. Así, en el ejemplo
siguiente se clasifica más aun el valor de la variable temperatura:

if (temperatura>100)

pantalla.writeln("Mayor que 100!");
else if (temperatura>50)

pantalla.writeln("Mayor que 50, menor o igual que 100");
else pantalla.writeln("Menor o igual que 50");

.....

A continuación se examinarán con más profundidad algunas características relativas
a las condiciones, y al agrupamiento de las instrucciones, con ello se podrá estudiar la
forma general de las instrucciones condicionales, así como distintas variaciones de las
mismas.

2 El tipo lógico

En el tema primero se han introducido algunos tipos de datos elementales que, como
se ha visto, definen las características principales de variables y expresiones; al decir
que un operando, por ejemplo, es de cierto tipo se están definiendo implícitamente las
operaciones en las que puede intervenir dicho operando. Hasta el momento se han
visto tipos numéricos y alfabéticos, se examinará a continuación el tipo asociado a las
condiciones.

La condición anterior:

temperatura>100

adquiere al ser evaluada (del mismo modo que cualquier otra condición) uno de los
dos posibles valores lógicos: cierto o falso que se denotarán en los programas como:
true o false.

Se denomina expresión lógica, a cualquier expresión, secuencia de operandos y ope-
radores, que al ser evaluada tiene uno de los valores: true o false. Naturalmente,
cualquier condición es una expresión lógica.

2 EL TIPO L ÓGICO

3

Toda expresión lógica tiene además como tipo de datos el tipo lógico que se denotará

en los programas como: boolean.

Como ocurre con los otros tipos ya vistos, es posible declarar variables como perte-
necientes al tipo, así se podría reescribir las instrucciones iniciales del modo siguiente:

boolean alta;
.....
.....
alta = temperatura>100;
if (alta)

pantalla.writeln("La temperatura es mayor que 100!");
else pantalla.writeln("La temperatura es menor o igual que 100");

.....

Al ejecutarse la primera instrucción se asigna a la variable alta el resultado de la
evaluación de la expresión que hay a la derecha en la asignación. En función del valor
lógico de dicha variable se escribirá uno u otro mensaje.

Los dos únicos valores constantes que puede tener cualquier expresión de tipo boolean
son los ya mencionados: true o false. Es posible en los programas hacer uso explícito
de dichos valores.

2.1 Operadores de comparación

Los operadores de comparación, también denominados operadores relacionales, se utili-
zan para comparar entre si valores de elementos que tienen el mismo tipo simple. Son
tipos simples los tipos numéricos ya vistos, junto con el tipo char y el boolean. Los
operadores, y su significado se listan a continuación:

OPERADOR NOMBRE OPERACI ÓN

EJEMPLO

<
>
<=
>=
==
!=

menor
mayor

menor o igual
mayor o igual

igual
distinto

temperatura < 100

minuto > 10
hora <= 24
dia >= 1
mes == 12

temperatura != 100

2.2 Comparación de cadenas (strings)

La comparación entre dos cadenas (strings) se realiza en Java de un modo distinto a
como se efectua la comparación entre valores pertenecientes a tipos elementales. Una
string es en Java un objeto, por lo que las operaciones de comparación se efectúan
mediante la notación de punto, que se estudiará más adelante.

Considérese, por ejemplo, el problema de solicitar un código de asignatura al usario,
para así comprobar si éste es o no el de una asignatura de primer curso, dando infor-
mación sobre las que si que lo son, y rechazando las que no lo sean. Un segmento de la
posible solución sería:

2 EL TIPO L ÓGICO

4

String asig = teclado.readline();

if (asig.equals("PRG"))

out.writeln("Si, es anual");
else if (asig.equals("MAD"))

pantalla.writeln("Si, semestre A");

else if (asig.equals("AMA"))

pantalla.writeln(Si, semestre B");

else if ...
.....
else if (asig.equals("MAD"))

pantalla.writeln(Si, semestre A");

else pantalla.writeln("No es de primer curso");

Del mismo modo que es posible comparar dos strings para determinar si son o
no iguales, es también posible realizar la comparación para determinar su orden lexico-
gráfico. Este último depende del juego de caracteres subyacente, UNICODE en el caso
del Java.

2.3 Operadores lógicos

Es posible construir una nueva expresión lógica yuxtaponiendo otras expresiones lógicas,
ligadas entre sí mediante las denominadas conectivas lógicas.

Así, por ejemplo, se podría determinar si la variable temperatura antes conside-
rada tiene un valor comprendido entre 15 y 20 grados, ambos inclusive, mediante las
instrucciones siguientes:

if ((temperatura>=15) && (temperatura<=20)) ....
.....

Para que la condición anterior evalue a true es necesario que el valor de la variable
temperatura sea mayor o igual que 15 y, al mismo tiempo, menor o igual que 20, de lo
contrario evaluará a false.

Además de la conectiva del ejemplo anterior para expresar la conjunción o y-lógico
la o-

(&&), existen también conectivas para expresar la disyunción o o-lógico (||),
exclusiva (^) y la negación (!).

Por ejemplo, se puede determinar si la temperatura es mayor o igual que 15, me-

diante la instrucción:

if ((temperatura>15) || (temperatura=15)) ....
// similar a (temperatura >= 15)
.....

O determinar si el valor de temperatura no está comprendida entre 0 y 100 mediante:

3 INSTRUCCIONES CONDICIONALES

5

if ((temperatura>=0) ^ (temperatura<=100)) ....
//similar a (temperatura>100) || (temperatura<0)
.....

En realidad, el lenguaje Java proporciona dos operadores diferentes para cada una
de las conectivas. Los denominados cortocircuitados que tienen la particularidad de
que en las subexpresiones donde aparecen se evalúa, siguiendo el recorrido de izquierda
a derecha, la mínima parte de la subexpresión necesaria para conocer el valor lógico.
Sin embargo, cuando se utiliza un operador no cortocircuitado se produce siempre la
evaluación de toda la subexpresión donde éste aparece. En Java, los operadores no
cortocircuitados para la conjunción y la disyunción son respectivamente: & y |.

A continuación se muestra las tablas de verdad de los operadores lógicos vistos:

x

y

false
false
true
true

false
true
false
true

x && y
x & y
false
false
false
true

x || y
x | y
false
true
true
true



x

y

false
true
true
false

!x

true
true
false
false

2.4 Precedencia de operadores

La siguiente tabla muestra la precedencia relativa de todos los operadores vistos hasta el
momento (junto con el operador ternario que se verá al final de este tema). Recuérdese
que las expresiones se evalúan, por defecto, de izquierda a derecha.

/ %
-
>= < <=

grupo 0: ( )
grupo 1: ++ -- +(unario) -(unario) !
grupo 2: *
grupo 3: +
grupo 5: >
grupo 6: == !=
grupo 7: &
grupo 8: ^
grupo 9: |
grupo 10: &&
grupo 11: ||
grupo 12: ?: (operador ternario)
grupo 13: =

op= (op es uno de: +,-,*,/,%,&,|,^)

3

Instrucciones condicionales

A continuación se examina la forma general que tienen las distintas instrucciones con-
dicionales. Se utilizará la letra B para denotar una condición y la S para denotar una

3 INSTRUCCIONES CONDICIONALES

6

instrucción (o bloque) cualquiera. Si existe más de una, de alguna de ellas, se hará
  • Links de descarga
http://lwp-l.com/pdf2119

Comentarios de: PROGRAMACIÓN (PRG) - Tema 3 - CONDICIONES Y ELECCIÓN (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad