1
|
- Operadores lógicos y relacionales
|
2
|
- Estos operadores permiten evaluar relaciones entre valores. Por ejemplo:
- ¿Es el valor A mayor que el valor B?
- El resultado de estas operaciones es un valor de tipo booleano.
- Estos operadores se utilizan para escribir expresiones que permitan
controlar el flujo de ejecución de un programa.
|
3
|
|
4
|
- Note que para asignar valores a una variable se usa el =. Pero para comparar dos valores y
obtener un valor verdadero o falso como resultado se utiliza el operador
==.
- Ejemplos:
- x = 10; // Guarda un 10 dentro de x.
- (x == 10) // Compara el valor que está
- // dentro de x para ver si es igual a 10.
- // Lo anterior va a producir un valor // booleano (true o false).
|
5
|
- La precedencia entre estos operadores es la siguiente:
- Los operadores: <, >, <=, y
>=, tienen prioridad.
- Luego siguen los de igualdad y desigualdad: ==, !=
- Si existen varios operadores del mismo tipo al mismo nivel, se evalúan
de izquierda a derecha.
- Todos los operadores aritméticos preceden a los relacionales.
|
6
|
- Mediante expresiones booleanas con operadores lógicos.
- Estos operadores lógicos permiten realizar operaciones con valores
booleanos.
- Mediante ellos es posible escribir en una sola expresión la verificación
para múltiples condiciones booleanas separadas.
- El resultado de estas operaciones es un valor único de tipo booleano.
|
7
|
- La operaciones lógicas básicas son:
- Y (AND).
- O inclusivo (OR).
- O exclusivo (XOR).
- Negación (NOT).
|
8
|
- El Y sirve para combinar
expresiones booleanas y saber si ambas se cumplen a la vez.
- Por ejemplo:
- Suponga que usted puede saber si una computadora o un televisor están
encendidos o apagados de manera individual. El Y puede servir para saber en una
sola expresión si están encendidos el televisor y la computadora a la
vez.
|
9
|
- El resultado del Y lógico entre dos operandos es verdadero solamente
cuando ambos valores son verdaderos.
- Observe en la matriz de correlación que cuando alguno de los operandos
es falso, el resultado del Y siempre es falso.
|
10
|
- El Y en Java se representa por el símbolo &&.
- Por ejemplo:
- (true && false) produce false.
|
11
|
- El O sirve para combinar
expresiones booleanas y saber si al menos alguna de las dos se cumple.
- Por ejemplo:
- Suponga que usted puede saber si una computadora o un televisor están
encendidos o apagados de manera individual. El O puede servir para saber en una
sola expresión si alguno de los dos (televisor o computadora) están
encendidos.
|
12
|
- El resultado del O entre dos operandos es verdadero siempre que alguno
de los dos operandos es verdadero.
- Observe en la matriz de correlación que solamente cuando ambos valores
son falsos, el resultado del O puede ser falso.
|
13
|
- El O en Java se representa por el símbolo | |.
- Por ejemplo:
- (true || false) produce true.
|
14
|
- El XOR sirve para combinar
expresiones booleanas y saber si se cumple exactamente una de las dos.
- Por ejemplo:
- Suponga que usted puede saber si una computadora o un televisor están
encendidos o apagados de manera individual. El XOR puede servir para saber en una
sola expresión si alguno de los dos (Televisor o la Computadora) están
encendidos pero que ambos no están encendidos a la vez.
|
15
|
- El resultado del XOR (O exclusivo) entre dos operandos es verdadero
solamente cuando exactamente uno de los dos operandos es verdadero.
- En otras palabras, solamente es verdadero cuando un operando es
verdadero y el otro es falso.
|
16
|
- El O exclusivo (XOR) en Java se representa por el símbolo ^.
- Por ejemplo:
- (true ^ false) produce true.
|
17
|
- El NOT sirve para saber si se
cumple exactamente lo contrario a la expresión evaluada.
- Por ejemplo:
- Suponga que usted puede saber si un televisor está encendido o
apagado. El NOT puede servir para
saber si el Televisor no está encendido, que en este caso es lo mismo
que estar apagado.
|
18
|
- La negación se aplica sobre un único operando booleano y permite obtener
su valor opuesto.
- La negación de un operando produce un valor verdadero solamente cuando
el operando es falso y viceversa.
|
19
|
- La negación o NOT en Java se representa por el símbolo ! precediendo al
operando booleano.
- Por ejemplo:
|
20
|
- Todos los operadores antes vistos (aritméticos, relacionales y lógicos)
deben tener un orden de precedencia unificado, que permita evaluar
expresiones complejas.
- Este orden se define en la siguiente tabla de precedencia de operadores.
|
21
|
|
22
|
|
23
|
|
24
|
- Introducción a las estructuras de control
|
25
|
- Los programas ejecutan sus instrucciones de manera secuencial, en otras
palabras, una después de la otra.
- Los lenguajes de programación proveen estructuras de control que
permiten alterar el orden de ejecución cuando se dan ciertas
condiciones.
|
26
|
- Las estructuras de control manejan el flujo del programa.
- Se pueden clasificar en tres grupos:
- Estructuras de secuencia.
- Estructuras de selección.
- Estructuras de repetición.
|
27
|
- La única estructura de control de secuencia es el bloque de
instrucciones.
- Un bloque de instrucciones es una serie de instrucciones que se agrupan
para que se comporten como una macro instrucción.
- Un bloque de instrucciones se puede utilizar como si fuera una
instrucción independiente.
|
28
|
- Dentro de un bloque de instrucciones se pueden definir variables.
- Las variables declaradas dentro de un bloque solo tienen alcance dentro
del mismo.
- Las instrucciones dentro de un bloque son ejecutadas de manera
secuencial.
- Dentro de un bloque de instrucciones pueden haber tanto instrucciones
simples como otros bloques.
|
29
|
- Un bloque de instrucciones en Java está encerrado por llaves { }.
- En cualquier punto donde se pueda colocar una instrucción también se
puede colocar un bloque.
- {
- instruccion1;
- instruccion2;
- instruccion3;
- // instrucciones...
- }
|
30
|
- Las estructuras de selección permiten elegir entre ejecutar distintos
grupos de instrucciones según una condición.
- Existen 3 tipos básicos de estructuras de selección:
- Estructura “if”.
- Estructura “if / else”.
- Estructura “switch”.
|
31
|
- La estructura “if” indica que una instrucción o bloque de instrucciones
se debe ejecutar solamente “si” cierta condición se cumple.
- En caso contrario, ninguna instrucción es ejecutada.
|
32
|
- En Java, un “if” se codifica de la siguiente manera:
- if (condición) {
- // Las instrucciones se escriben dentro del // bloque.
- }
|
33
|
- Es una extensión del “if”.
- Si la condición se cumple, un bloque es ejecutado.
- En caso contrario, otro bloque de instrucciones es ejecutado.
|
34
|
- En Java, un “if / else” se codifica de la siguiente manera:
- if (condición){
- // bloque A si la condición es true
- }
- else {
- // bloque B si la condición es falsa
- }
|
35
|
|
36
|
|
37
|
- La estructura “switch” permite elegir entre múltiples grupos de
instrucciones, dependiendo del valor de una variable.
- En cada caso, la variable se compara contra un valor específico. Si
coincide, se ejecuta el grupo de instrucciones asociado.
- Opcionalmente se puede colocar un último caso que se ejecuta si todos
los anteriores no coinciden.
|
38
|
- En Java, un “switch” se codifica de la siguiente manera:
- switch (variable){
- case valor1:
- // instrucciones si variable == valor1
- break;
- case valor2:
- // instrucciones si variable == valor2
- break;
- // ...
- default: // si ningún caso se cumple.
- // instrucciones.
- // Note que el último caso no requiere break.
- }
|
39
|
|
40
|
|
41
|
- Las estructuras de repetición permiten ejecutar un bloque de código de
manera cíclica, dependiendo de una condición dada.
- Existen 3 tipos de estructuras de repetición:
- Estructura “while”.
- Estructura “do / while”.
- Estructura “for”.
|
42
|
- El “while” permite ejecutar un bloque una y otra vez “mientras que” la
condición sea verdadera.
- La condición se evalúa antes de ingresar al bloque.
- En el bloque debe existir alguna instrucción que altere la condición del
“while” para evitar que el programa se “encicle”.
|
43
|
- En Java, un “while” se codifica de la siguiente manera:
- while (condición){
- // bloque ejecutado hasta que la
- // condición se haga falsa
- }
|
44
|
- Cuando en un ciclo la condición nunca llega a tener el valor necesario
para salir de éste, se dice que el programa se ha enciclado.
- El bloque de instrucciones se ejecutaría hasta que el programa sea
terminado por medios externos de manera abrupta.
|
45
|
- Un caso común es la omisión del incremento en un contador.
- Otro caso típico ocurre cuando la condición para salir de un ciclo nunca
llega a ser verdadera, tal y como se ilustra a continuación utilizando.
- Ambos casos se muestran en el siguiente ejemplo.
|
46
|
|
47
|
|
48
|
- El “do / while” permite ejecutar un bloque una y otra vez “hasta que” la
condición sea falsa.
- La condición se evalúa después de ejecutar el bloque.
- El bloque de un “do / while” siempre es ejecutado al menos una vez.
|
49
|
- En Java, un “do / while” se codifica de la siguiente manera:
- do {
- // bloque ejecutado mientras que
- // la condición sea verdadera
- } while (condición);
|
50
|
|
51
|
|
52
|
- El “for” tiene una sintaxis más compacta y separa los elementos de una
estructura de control de repetición según su significado.
- El encabezado del “for” se divide en tres secciones específicas.
- Inicialización
- Condición
- Actualización de la condición
- Se recomienda usar el “for” cuando se tienen ciclos controlados por un
contador.
|
53
|
|
54
|
- La expresión de inicialización se evalúa solamente una vez al inicio del
ciclo “for”.
- Si la condición es verdadera, se ejecuta el bloque de instrucciones.
- Posteriormente, se evalúa la expresión de actualización, donde
normalmente se modifican variables que hacen que la condición cambie.
- A partir de este punto, el ciclo continúa con el paso 2.
|
55
|
- En Java, un “for” se codifica de la siguiente manera:
- for (inicialización ; condición
; actualización){
- // bloque que se ejecuta mientras que la // condición sea verdadera
- }
|
56
|
- La estructura “for” equivale a una estructura “while” como la siguiente:
- // inicialización
- while(condición){
- // bloque
- // actualización
- }
|
57
|
- Sí. Existen instrucciones para interrumpir ciclos. Estas son el “break”
y el “continue”.
- Estas instrucciones se pueden colocar en cualquier parte del bloque de
una estructura de control de repetición.
- El “break” se sale del bloque de la estructura de repetición y continúa
ejecutando la instrucción siguiente al bloque.
- El “continue” ignora las instrucciones siguientes dentro del bloque del
ciclo pero regresa al punto de evaluación de la condición.
- El uso de “break” y “continue” no es recomendado.
|
58
|
|
59
|
|
60
|
- Utilice bloques siempre que escriba estructuras de control.
- Aunque las llaves no son necesarias cuando el bloque de una estructura
de control contiene una sola instrucción, no se recomienda hacer esto ya
que esto hace que el código sea más difícil de leer y mantener, en
especial cuando se quiere agregar instrucciones a la estructura.
- Lo siguiente funciona correctamente pero no es recomendado:
- if (nota >= 6.75)
- System.out.println(“Ganó el curso”);
- Siempre es conveniente poner las llaves:
- if (nota >= 6.75) {
- System.out.println(“Ganó el curso”);
- }
|
61
|
|
62
|
|
63
|
|