20250930 ProgEstr-Operadores_6 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
para poder avanzar
00:00:00
y hacer ya cositas más interesantes
00:00:02
y ya está
00:00:04
vale
00:00:06
el documento que estamos dando como guía para no perdernos
00:00:07
ya sabemos
00:00:10
ya hacer condiciones ¿verdad?
00:00:12
sencillas
00:00:15
y sabemos hacer
00:00:15
sabemos
00:00:17
joder
00:00:18
sabemos hacer condiciones con el menor que
00:00:20
mayor que, menor o igual
00:00:24
mayor o igual, igual a
00:00:26
y distinto de
00:00:27
sabemos hacer condiciones con estos operadores
00:00:29
comparando cosas que tengan
00:00:31
como numeritos y carácter y ya está
00:00:33
pero
00:00:35
esas condiciones
00:00:37
que podemos hacer son tan simples
00:00:39
que hay veces que
00:00:41
necesitamos
00:00:43
construir operaciones más complejas
00:00:44
para lo cual
00:00:48
podemos unir condiciones sencillas
00:00:50
con los operadores lógicos
00:00:52
o booleanos
00:00:54
estos operadores
00:00:55
me permiten unir dos condiciones más sencillas
00:00:57
y obtener una más grande.
00:01:01
Luego, los relacionales unen numeritos
00:01:05
y obtienen una condición.
00:01:09
Los booleanos unen condiciones
00:01:12
y obtienen otra condición más grande.
00:01:15
¿Cuáles son?
00:01:19
Esencialmente, el an, el or y el not.
00:01:26
Los de toda la vida.
00:01:31
es una aclaración hacia abajo
00:01:32
sí, una exclamación, la de cierre
00:01:34
no la de apertura
00:01:37
entonces, estos son los tres
00:01:37
de toda la vida, y así es como
00:01:40
se escriben en Java
00:01:42
entonces, si yo uno dos condiciones
00:01:44
con and
00:01:47
la condición gordota que
00:01:48
encuentro, será cierta
00:01:50
solo si lo son
00:01:53
simultáneamente las dos
00:01:54
si yo uno dos condiciones
00:01:56
pequeñitas con un or
00:02:00
obtengo una condición más grandota
00:02:02
y esa condición
00:02:04
será cierta con que
00:02:06
alguna de las dos, cualquiera de las dos
00:02:08
lo sea, si son las dos también, claro
00:02:10
y el not
00:02:12
solo se aplica a una condición
00:02:14
que va detrás
00:02:17
y es la contraria
00:02:18
si a
00:02:20
es cierta
00:02:22
con el no delante
00:02:24
la condición que consigo
00:02:27
es falsa
00:02:28
y si A es falsa, justo, la condición
00:02:29
que consigo es cierta, entonces
00:02:32
con esto que expreso, enunciados
00:02:34
del tipo, pasa
00:02:36
esto y además pasa
00:02:38
esto, entonces cuando mi
00:02:40
enunciado es, pasa esto y
00:02:42
pasa esto, me va a hacer falta
00:02:44
un A, esto y
00:02:46
esto, pero cuando
00:02:48
mi enunciado es, pasa
00:02:49
esto o pasa esto
00:02:52
otro, pues entonces sé que
00:02:54
automáticamente será un O
00:02:56
pero si mi enunciado es
00:02:57
no pasa esto
00:03:00
pues entonces sé que automáticamente
00:03:01
mi operador que me vendrá bien
00:03:03
poner es el not
00:03:06
son los tres básicos
00:03:06
hay
00:03:10
las versiones estas
00:03:14
para estos dos
00:03:17
las versiones con uno solo
00:03:19
que
00:03:21
las versiones con uno solo
00:03:24
que diréis porque hay dos
00:03:30
versiones, con uno y con dos.
00:03:33
Pues bueno, tiene su mira.
00:03:34
Tendremos que verlo.
00:03:37
No nos queda otra.
00:03:38
Y este operador extraño, que ya nos apareció en un text,
00:03:40
que este es más raro de usar, porque no
00:03:42
expresa situaciones muy naturales.
00:03:44
Las aplicaciones gestionan
00:03:47
cosas de la vida real, entonces no están
00:03:48
para hacer cosas extrañas.
00:03:50
Este operador es
00:03:53
más raro. Este es el
00:03:54
O exclusivo. Este es cierto
00:03:56
si lo es
00:03:59
solo una de las dos.
00:04:00
luego es distinto que este
00:04:03
este es cierto
00:04:05
si lo es esta
00:04:07
o si lo es esta
00:04:08
o si lo son las dos también
00:04:10
o esta o la otra o las dos
00:04:11
pero este de abajo
00:04:14
si las dos fueran ciertas
00:04:16
la compuesta es falsa
00:04:18
tiene que ser una de las dos
00:04:20
por eso se llama el or exclusivo
00:04:22
¿vale?
00:04:24
¿vale?
00:04:26
Claro, tú pones un if
00:04:26
Y aquí la condición que sea
00:04:38
Pues imagina, si pones este operador
00:04:39
Pues entrará en el if
00:04:42
Si se cumple esta y esta
00:04:43
Una de las dos, pero solo una
00:04:46
Si tú pusieras un or
00:04:48
Que son las dos barritas
00:04:50
Una de las dos o las dos
00:04:51
Vale
00:04:53
vale
00:04:54
si esto se movía
00:04:56
ya no se mueve
00:05:03
esto claro
00:05:05
como son de muy baja calidad pues ya nos hemos
00:05:07
cargado el este de tanto
00:05:09
yo creo
00:05:11
si
00:05:13
debería pero ya me lo he cargado
00:05:15
yo creo
00:05:18
a ver son las de low cost
00:05:18
de la comunidad de Madrid
00:05:25
entonces
00:05:26
prueba las flechitas
00:05:28
de los lados
00:05:33
se ve que el ordenador
00:05:33
se ha congelado
00:05:37
le he quitado el táctil
00:05:37
pero no
00:05:39
lo que yo quiero es que sea
00:05:39
la de mi ordenador táctil
00:05:55
que esto me lo ha hecho de siempre, de toda la vida
00:05:56
yo podría aquí seleccionar
00:05:58
pero bueno, da igual
00:06:00
si da lo mismo
00:06:02
vale, era para ver si teníamos
00:06:03
algo más debajo interesante
00:06:06
no, vale, esto lo explica
00:06:08
un poquito, nos da un poco igual
00:06:12
true and false, bla bla bla
00:06:14
todo esto lo podéis leer, bla bla bla
00:06:15
vale
00:06:19
venga, a ver
00:06:20
vamos a verlo
00:06:26
Ejemplológicos
00:06:29
Ahora con los ejemplos
00:06:34
Vamos a ver porque hay dos versiones
00:06:44
Vamos a verlo
00:06:46
Porque
00:06:47
Puede la curiosidad
00:06:49
Vale
00:06:51
Pues an orino
00:06:54
Ya sabemos, por ejemplo
00:06:56
Programa que
00:06:57
Te pide
00:07:00
Tu edad
00:07:01
Y
00:07:03
te tiene que decir
00:07:04
si estás
00:07:06
en condiciones de trabajar
00:07:07
o lo que es lo mismo
00:07:10
si eres mayor o igual de 16
00:07:11
¿se puede trabajar con 16 o 17?
00:07:13
no solo con 18
00:07:16
pues te dice
00:07:17
si eres mayor o igual de 16
00:07:22
y menor o igual de
00:07:23
pues yo que sé, la edad que se jubile la gente ahora
00:07:26
Venga
00:07:28
Venga, pues formulario que le metemos aquí a un tío
00:07:30
Para decirle
00:07:50
No, no, no pidas trabajo
00:07:52
Porque no puedes
00:07:54
Le decimos
00:07:56
Introduce tu edad
00:07:59
Ala
00:08:04
la variable edad es un entero
00:08:09
y la leemos
00:08:12
ahora
00:08:17
ahora tenemos que pensar
00:08:20
este programa
00:08:23
¿qué tiene que hacer?
00:08:24
pues me tiene que mostrar una cosa
00:08:26
u otra en función de una
00:08:28
condición, pues ya automáticamente
00:08:30
después de haber entendido el programa
00:08:33
y haber empezado a diseñarlo un poco más
00:08:35
ya identificamos el término
00:08:36
uy, condición, vale, condición, genial
00:08:38
mi programa depende
00:08:40
de una condición
00:08:42
lo que le va a contestar al tío.
00:08:43
Depende de una condición.
00:08:46
Pues no pasa nada.
00:08:47
Me hago yo aquí mi boolean maravilloso
00:08:50
para
00:08:52
guardar esa condición.
00:08:55
Vale. Y ahora,
00:09:01
¿qué condición me interesa a mí reflejar?
00:09:02
Me han dicho
00:09:05
que esa persona
00:09:05
esté en condiciones de trabajar.
00:09:07
Pero claro, en Java
00:09:11
no existe la condición de estar en condiciones de trabajar.
00:09:12
Entonces tengo que traducirla
00:09:14
lengua fijada
00:09:16
si depende de la edad
00:09:17
que es de lo único que puede depender
00:09:20
será
00:09:22
mayor o igual que 18
00:09:23
¿y solo con que sea mayor o igual que 18 ya puede trabajar?
00:09:25
no
00:09:29
también tiene que ser menor o igual
00:09:30
que 70, dejémoslo en 70
00:09:32
entonces
00:09:34
esa es una condición ya compuesta
00:09:35
porque es el i lógico
00:09:38
de dos cosas
00:09:40
mayor o igual que 18
00:09:41
y menor o igual que 70
00:09:43
Luego, es una condición igual, pero identifico, ya solo con el hecho de decirlo yo de palabra, de mi viva voz, me di cuenta de que es una condición compuesta.
00:09:46
Entonces, será el compuesto de edad mayor o igual que 18 y, y como el i me han dicho que es el doble ampersand, pues yo lo pongo.
00:09:56
Y edad
00:10:13
Menor o igual que 70
00:10:15
Por ejemplo
00:10:18
Ponemos, por ejemplo
00:10:18
Porque si tú eres profe de universidad
00:10:21
Puedes trabajar hasta los 70
00:10:23
O de instituto
00:10:24
Podríamos estar aquí hasta los 70
00:10:31
Vale
00:10:36
Vale
00:10:39
Entonces
00:10:45
Ahora le decimos al tío
00:10:47
Puedes trabajar
00:10:49
Y ponemos el resultado de la condición
00:10:55
Pues sí
00:11:00
Puedes trabajar con 56 años
00:11:16
Vale
00:11:20
Vale, entonces
00:11:21
El operador AND está entendido
00:11:25
Sirve para unir dos condiciones
00:11:27
La global será cierta
00:11:30
Si lo son cualquiera de las dos
00:11:33
¿Vale?
00:11:35
El OR
00:11:37
Pues ya sabemos el sentido que tiene
00:11:38
La global será cierta si lo es una de las dos
00:11:40
Por ejemplo, vamos a poner la condición
00:11:42
Con la edad
00:11:54
Condición 1
00:11:57
Vamos a expresar que además le queremos decir al tío
00:11:59
Vale, pues vamos a expresar que
00:12:02
Eres niño
00:12:09
El OR es un operador
00:12:13
Que une un boolean con otro boolean
00:12:18
Claro, porque es o esto o lo otro
00:12:20
Entonces solamente puedes comprarlo
00:12:24
En condiciones
00:12:26
No, no, no
00:12:27
Son operadores lógicos
00:12:31
Que unen una condición con otra
00:12:33
Para hacer una gordota
00:12:35
Claro, entonces por ejemplo
00:12:36
Si pusiéramos la condición
00:12:38
Oye, ahora te voy a decir
00:12:39
si eres niño o centenario.
00:12:41
A ver si eres alguna de las dos cosas.
00:12:47
Pues podría ser esto.
00:12:50
Eres niño, menor o igual que 12 años,
00:12:52
o eres centenario, mayor o igual que 100.
00:12:55
Esta es otra condición válida.
00:13:02
Con el operador OR.
00:13:04
Esta se va a cumplir con el ALT-GR y el 1 en mi teclado.
00:13:05
el oro exclusivo
00:13:14
vale, pues a ver
00:13:17
este por ejemplo, ¿dónde está la flechita
00:13:19
aquí en el teclado?
00:13:21
el oro exclusivo, pero es que no lo encuentro en el teclado
00:13:27
a ver, podrán pasar
00:13:29
40 años más y jamás
00:13:33
usaré ese operador ni lo he usado
00:13:35
en los últimos 200
00:13:37
es que no lo encuentro
00:13:38
¿dónde está ese operador en el teclado?
00:13:40
el sombrerillo ese
00:13:45
Ah, joder, parezco tonta
00:13:47
Si está aquí
00:13:55
Vale, es que no lo usan en la vida ese operador
00:13:56
Vale
00:13:58
Este
00:14:01
Claro, es que no lo puedes usar con string
00:14:02
Es un operador
00:14:08
Es booleano
00:14:09
Claro, los que hemos visto aquí son todos lógicos
00:14:10
Que son
00:14:14
A partir de condiciones más sencillas
00:14:14
Es una condición más gorda.
00:14:17
Entonces, esta condición será cierta si es niño o si es centenario.
00:14:18
Una de las dos.
00:14:25
En este caso es que es imposible que sea las dos.
00:14:26
Con lo cual, poner esto y poner el oro es lo mismo.
00:14:28
Por ejemplo, vamos a cambiar esta condición a que sea entre 2 igual a 0.
00:14:32
Vale, pensad en esta condición que he puesto.
00:14:42
Vale.
00:14:45
yo
00:14:45
imaginaos
00:14:47
a ver, esta condición
00:14:49
imaginaos que meto yo
00:14:52
como edad
00:14:54
12, condición que será
00:14:55
¿true o false? rápido
00:14:58
instantáneamente
00:14:59
¿false?
00:15:01
porque las dos son true
00:15:04
¿vale?
00:15:06
si le meto 17
00:15:07
¿qué me da esa condición? rápidamente
00:15:09
¿cómo que true?
00:15:12
¿False? Claro, si no es true o es false.
00:15:15
¿False? ¿Por qué?
00:15:18
Porque las dos son falses.
00:15:19
Las dos son falses.
00:15:21
Pues eso, esta es falsa y esta es falsa.
00:15:25
¿Vale? Con lo cual, el oro exclusivo me da falso.
00:15:29
El oro exclusivo me da falso con las dos true o falso con las dos falsas.
00:15:31
Entonces, si yo ahora le digo el 5, ¿qué me da? ¿True o falso?
00:15:37
True.
00:15:41
True, porque esta es cierta y esta es falsa
00:15:42
¿Vale?
00:15:47
Y si le doy el 24
00:15:48
¿Me da true o falsa?
00:15:51
¡No!
00:15:55
Me da true, porque esta es falsa
00:15:58
Y esta es true
00:15:59
Si le doy 24
00:16:00
Me da true
00:16:03
Si le doy 12, me da falsa
00:16:04
¿Vale?
00:16:07
O sea, entonces el piquito este
00:16:08
Es or
00:16:11
Oro exclusivo
00:16:11
Es decir, o una o la otra
00:16:13
Pero nunca ninguna
00:16:16
Pero no las dos a la vez
00:16:17
Colozón
00:16:18
Nunca jamás en vuestra vida lo vais a ver
00:16:21
Pero para qué lo preguntas
00:16:23
Bueno, pues ahora ya lo habéis entendido
00:16:27
Ese es el oro no exclusivo
00:16:30
Esa sí es más interesante
00:16:34
Esta
00:16:35
Esta ya sí tiene un sentido real
00:16:38
Cuando tú dices
00:16:43
O una o la otra
00:16:44
También te vale cuando son las dos
00:16:45
Esto ya tiene un sentido real
00:16:48
Esto es cierto
00:16:50
Si lo es una
00:16:52
O si es lo a otra
00:16:53
O las dos, ¿vale?
00:16:54
O sea, es al menos una de las dos
00:16:56
¿Vale? Esto
00:16:57
Si al menos una de las dos es cierta
00:16:59
El total es cierto
00:17:02
Que eso sí que tiene un sentido en la vida real
00:17:03
¿Vale?
00:17:05
normalmente no nos ponemos tan exclusivos
00:17:06
o esto
00:17:09
o esto otro
00:17:10
como sean las dos, no
00:17:11
o esto o esto otro, normalmente dices
00:17:14
me valen las dos cosas, me vale esta
00:17:16
me vale esta, pero me valdrían las dos también
00:17:18
es un sentido real
00:17:20
pues este es el
00:17:22
normal, entonces
00:17:24
si aquí le damos
00:17:26
24, me da true
00:17:28
si le damos 12, me da true
00:17:30
si le damos 7
00:17:33
me da true
00:17:35
¿Vale?
00:17:36
Pero si le damos 25
00:17:39
Me da falso
00:17:42
O sea, solo me daría falso
00:17:45
Para los impares mayores de 13
00:17:47
¿Verdad?
00:17:49
Para los impares mayores de 13 me da falso
00:17:51
Para el resto de números me da falso
00:17:54
Para los impares mayores de 13, falso
00:17:58
¿Vale?
00:18:01
¿Cómo, cómo, cómo que te he roto?
00:18:06
No puede ser
00:18:10
A ver, esta condición es cierta
00:18:11
Si el número es par, ¿verdad?
00:18:15
Luego el or
00:18:18
Solo será falso
00:18:18
Si son falsas las dos
00:18:20
Es decir, mayor que doce
00:18:22
E impar
00:18:25
Solo para eso son falsas las dos
00:18:26
Para cualquier otro caso
00:18:31
Una de las dos es true
00:18:33
Y con que una de las dos sea true
00:18:34
O las dos, por supuesto
00:18:37
Según que una de las dos lo sea, la total ya es true
00:18:38
¿Vale?
00:18:41
Entonces, and y or
00:18:43
Tienen el sentido normal
00:18:44
Dos condiciones unidas con el and
00:18:47
La total es cierta si lo son las dos
00:18:50
Con que una sea falsa
00:18:52
Falsa la total
00:18:53
Y el or
00:18:56
La total es cierta
00:18:57
Con que lo sea al menos una
00:19:00
Me da igual cuál de las dos
00:19:02
Con que lo sea al menos una
00:19:04
y por supuesto
00:19:05
si no son las dos
00:19:07
la total es cierta
00:19:08
¿vale?
00:19:10
claro
00:19:14
¿cómo averiguas tú si un número es par?
00:19:14
y a todo su resto dice 3-0
00:19:17
¿vale?
00:19:18
vale
00:19:31
ahora
00:19:32
antes de irnos
00:19:33
podemos irnos ya
00:19:35
a la pregunta natural
00:19:37
¿Y por qué hay dos variantes?
00:19:38
Vale
00:19:45
¿Estamos preparados para
00:19:46
Saberlo?
00:19:48
Dos variantes del AND y del OR
00:19:51
¿Vale?
00:19:53
Porque
00:19:56
Este programa
00:19:57
También lo puedo hacer yo
00:19:59
Con el operador AND
00:20:02
En su otra variante
00:20:05
Que sería este
00:20:07
¿Verdad?
00:20:09
Porque me han dicho
00:20:14
Que lo puedo usar
00:20:15
Con el doble y con el simple
00:20:17
De hecho si lo ejecutamos
00:20:19
Yo le meto
00:20:21
Introduce tu edad, 67
00:20:23
Puedes trabajar
00:20:25
Introduce tu edad
00:20:27
45
00:20:29
Puedes trabajar
00:20:31
¿Vale?
00:20:32
3, pues no puedes
00:20:35
Entonces, jolín, si es que hace lo mismo
00:20:38
¿Por qué hay dos variantes?
00:20:40
Vale, pues hay dos variantes.
00:20:43
Funcionan de forma distinta.
00:20:45
O sea, no tiene sentido que haya dos formas de hacerla.
00:20:46
Eso.
00:20:50
¿Para qué?
00:20:50
¿Para qué se va a inventar el lenguaje de programación?
00:20:51
¿Para qué se va a inventar dos símbolos si hacen lo mismo?
00:20:55
Es que no hacen lo mismo.
00:20:57
A ver, ¿cómo funciona el doble de arriba?
00:21:00
La máquina virtual evalúa la primera condición.
00:21:05
imaginaos que esta es falsa
00:21:08
porque yo he metido D
00:21:11
entonces cuando la máquina virtual ve que esta es falsa
00:21:15
la siguiente condición es que le da exactamente igual
00:21:19
porque la total va a ser falsa
00:21:22
porque el AND necesita que las dos sean true
00:21:25
con lo cual si la primera es falsa
00:21:27
esta ni la mira
00:21:31
la tira a la basura como si no existiera
00:21:33
y ya devuelve el resultado
00:21:35
falso, para condicionar.
00:21:38
Sin embargo, ¿qué hace
00:21:42
la máquina virtual
00:21:43
si se encuentra la versión con solo
00:21:44
un operador?
00:21:49
Pues, la estamos
00:21:51
obligando, aunque no le haga
00:21:53
ninguna falta, a evaluar
00:21:55
esta también.
00:21:57
Está perdiendo el tiempo.
00:21:59
Si solo se encuentra el operador, la máquina virtual
00:22:01
evalúa la primera.
00:22:04
Si es falso,
00:22:07
es que me da igual como sea la segunda
00:22:08
me da igual
00:22:10
pero no me queda más remedio
00:22:11
que evaluarla, porque me han puesto
00:22:14
el operador con un solo símbolo
00:22:16
entonces la evalúo
00:22:19
me da igual lo que me dé, por la otra más el pausa
00:22:20
entonces diré
00:22:22
¿y para qué narices? ¿qué sentido tiene
00:22:24
que le obliguemos a evaluar
00:22:26
una condición cuando el resultado
00:22:29
le va a dar lo mismo
00:22:31
si aquí es falso?
00:22:32
dejémosle siempre
00:22:35
con el doble operador y que no lo evalúe.
00:22:36
Vale, pues el sentido que tiene es
00:22:39
que a la vez que hacemos una condición,
00:22:41
podemos meter dentro, colar dentro,
00:22:48
una asignación, por ejemplo.
00:22:51
Es decir, imaginaos esta situación.
00:22:55
Yo quiero...
00:23:02
Claro, con el or lo mismo.
00:23:04
Tú tienes la doble barra.
00:23:09
Si la primera es true, le da igual lo que sea la segunda.
00:23:10
Pero si pones la barra simple, le obligas a evaluar la segunda.
00:23:14
Entonces, ¿en qué situaciones hay diferencia entre que evalúe y no?
00:23:18
Pues, por ejemplo, imaginaos esta situación.
00:23:23
Vamos a hacer aquí, a ver, voy a hacerlo en una clase distinta.
00:23:28
Simple operado.
00:23:45
Vamos a suponer un programa que pide dos edades, la edad del padre y del hijo
00:23:47
Y te tiene que hacer una condición para mostrarte si la edad del padre es múltiplo de la del hijo, por ejemplo
00:23:54
Vale, pues entonces, como vamos a leer por teclado, hacemos el escáner
00:24:03
Aquí la variable para guardar la edad del padre y aquí la variable para guardar la edad del hijo
00:24:40
Todavía no le vamos a dar valor
00:24:46
Se supone que es un valor que vamos a leer ahora con el escáner
00:24:49
Introduzca la del padre, introduzca la del hijo
00:24:51
Vale
00:24:53
Aquí vamos a dejar eso
00:24:54
Ahora de pedir la del padre y del hijo
00:24:57
Vamos a escribir primero la condición
00:24:59
Vale
00:25:01
Bueno, no, que sea múltiplo
00:25:09
Necesito que sea una que ligue dos
00:25:11
Que la edad del padre
00:25:13
Que el padre sea
00:25:16
La condición que vamos a poner es
00:25:18
Que el padre sea mayor de edad
00:25:20
Y que su edad
00:25:23
Sea múltiplo de la de su hijo
00:25:28
Venga, nos pueden
00:25:31
Quién sabe, puede haber una aplicación
00:25:33
Que le interese muchísimo esa condición
00:25:35
Y que su edad sea múltiplo
00:25:36
De la del hijo
00:25:41
Vale
00:25:43
Esa condición
00:25:44
Sería el
00:25:46
And de dos cosas, ¿verdad?
00:25:49
Porque son dos cositas
00:25:52
Esta y esta
00:25:53
Vamos una por una
00:25:54
La primera, padre mayor de edad
00:25:56
Facilísima
00:25:58
Padre mayor o igual que 18
00:26:00
Vámonos a la segunda
00:26:04
Pongo aquí el enter, la pongo abajo
00:26:07
Para que, como mi letra es muy grande
00:26:09
Edad del padre mayor o igual que 18
00:26:11
Y
00:26:13
Que la edad del padre sea múltiplo de la del hijo
00:26:14
Es que el resto de dividir
00:26:19
La del padre es la del hijo, sea cero
00:26:21
Un número es múltiplo del otro
00:26:22
Si el resto de dividir entre otro es cero
00:26:23
Pues esa condición la podemos poner así
00:26:25
El resto de dividir
00:26:28
Edad del padre
00:26:30
Entre la del hijo
00:26:32
Igual a cero
00:26:33
Muy apiñado, me está quedando todo
00:26:35
¿Vale?
00:26:38
Esa sería la condición, me lo está poniendo en rojo
00:26:44
Porque me dice, oye, ojo, que edad del padre y edad del hijo
00:26:46
Está sin inicializar
00:26:48
No puedo evaluar la condición
00:26:50
Pero a falta de darle valor a la edad del padre e hijo
00:26:52
Que no se lo hemos dado
00:26:54
A falta de dárselo, la condición está bien puesta
00:26:55
el padre mayor de edad
00:26:58
y
00:27:01
esta edad es múltiplo de esta otra
00:27:01
vale, pero
00:27:05
¿el escáner se lo puedo poner a la padre
00:27:06
y a la vieja y ya la posibilidad de aplicar?
00:27:13
sí, sí, sí, podría ponerlo ahí
00:27:15
no lo he puesto ahí a propósito para
00:27:16
aplicar esto, vale, entonces está claro
00:27:19
que aquí el único error que
00:27:21
sale es porque no le he dado valor
00:27:23
a esas variables, no le he dado valor
00:27:25
bueno, pues resulta
00:27:26
que a la vez que yo uso una variable
00:27:28
en una condición, que aquí está
00:27:31
bien usada, a la vez que la uso
00:27:33
puedo aprovechar para darle valor.
00:27:35
Es como meter
00:27:38
una asignación dentro de
00:27:38
una condición. No pasa nada, puedo hacerla.
00:27:41
Es decir, a la vez
00:27:44
que uso la edad del padre,
00:27:45
a la vez puedo aprovechar y darle
00:27:47
valor. Entonces, primero recibe
00:27:49
el valor y luego ya
00:27:51
se evalúa la condición. Entonces, yo podría
00:27:53
aprovechar y darle el valor
00:27:55
aquí mismo, que es
00:27:57
el del scan.
00:27:59
Next, int.
00:28:01
¿Vale?
00:28:06
Entonces, yo podría hacer aquí.
00:28:08
Si la edad del padre, siendo la edad del padre, el resultado, haciendo esta asignación, es mayor o igual que 18.
00:28:11
Y aquí, la edad del padre ya se le ha asignado aquí.
00:28:22
Voy a aprovechar aquí, a la vez que uso la variable, voy a aprovechar y voy a hacer una asignación y le asigno valor.
00:28:25
edad del hijo
00:28:31
igual a
00:28:33
scan.nextint
00:28:36
¿vale?
00:28:38
esto es raro, pero esto sí que se hace
00:28:45
es decir, mi condición
00:28:47
involucra variables
00:28:49
está claro, pero es que
00:28:51
cada variable que yo involucre
00:28:53
ahí, si quiero
00:28:55
puedo aprovechar y ya de paso asignarle un valor
00:28:56
¿vale? ya aprovecho
00:28:59
pues es lo que he hecho
00:29:01
aquí, a esta variable he aprovechado
00:29:03
le he asignado un valor
00:29:05
y ya con ese valor asignado
00:29:06
ya evaluará la condición
00:29:08
aquí a este no hace falta
00:29:10
que se lo asignara porque ya se lo ha asignado
00:29:14
pero a este aprovecho que tengo que usar esta variable
00:29:16
para ya de paso asignarle un valor
00:29:18
y ya que una vez
00:29:20
asignado, evalúo
00:29:22
la condición
00:29:24
luego esto siempre lo puedo hacer
00:29:25
en una condición que usa variables
00:29:28
aprovechar y asignarle
00:29:31
un valor a esa variable
00:29:33
antes de que ya la use para la condición
00:29:34
Bueno, pues entonces aquí sí que es crítico el usar dos en situaciones como esta
00:29:36
Aquí ya sí que es crítico usar aquí el doble o usar el simple
00:29:47
¿Por qué? Vamos ahora a ejecutar esto
00:29:54
Imaginaos que el padre mete la edad y mete 13 años
00:29:59
pues entonces
00:30:03
trece años, lo primero que hace es la asignación
00:30:05
trece, ahora compara
00:30:08
padre trece menos dieciocho
00:30:10
falso, pues aquí ya
00:30:12
ni entra, porque es doble operador
00:30:14
luego aquí ni entra
00:30:16
luego al no haber entrado aquí
00:30:17
nunca hace esta asignación
00:30:19
cuando bajemos
00:30:21
por aquí abajo, edad del
00:30:24
padre tiene su valor, pero la del hijo
00:30:26
jamás nos la ha pedido
00:30:27
porque nunca jamás entró aquí
00:30:29
porque esto es un doble año
00:30:31
si hacemos una ejecución mañana
00:30:33
y edad del padre
00:30:36
27, ahora ya sí
00:30:38
27 mayor o igual que 18 es true
00:30:40
necesito entrar en la otra
00:30:42
porque ahora ya sí que dependiendo
00:30:44
de la otra será true o false
00:30:46
ya así nos pedirá la del hijo
00:30:48
¿vale? porque esta ha sido true
00:30:50
con lo cual ya sí que necesita
00:30:54
pero si yo meto la edad del padre falsa
00:30:56
nunca jamás nos pediría esta
00:30:58
nunca, luego el hijo se quedaría sin edad
00:31:00
que yo quiero
00:31:02
forzar a que meta
00:31:04
a la edad que meta, siempre
00:31:07
entre en la segunda parte para hacer este
00:31:08
scan
00:31:10
quito eso y dejo
00:31:11
un solo ampersand, vale
00:31:14
con un doble ampersand
00:31:16
solo va a hacer
00:31:21
la segunda parte si la primera es true
00:31:23
solo
00:31:25
con un simple ampersand va a hacer las dos
00:31:26
partes siempre, esa es
00:31:29
la diferencia entre el doble ampersand y el
00:31:31
uno, vale y de hecho lo podemos
00:31:33
comprobar con el doble, por ejemplo
00:31:39
Yo ejecuto esto
00:31:40
Qué prisas
00:31:43
Yo ejecuto esto
00:31:44
Se me queda aquí esperando la edad del padre
00:31:49
12
00:31:56
El programa ha terminado
00:31:56
Se ha quedado sin edad del hijo
00:31:58
Ya está
00:32:00
Pero por qué
00:32:01
Si no se da permiso para salir
00:32:04
Ni levantaros
00:32:06
¿Por qué?
00:32:07
No se da permiso para que os vayáis
00:32:10
Pues no se da permiso ni para respirar
00:32:12
Vale, entonces, yo he metido 12 y como veis el programa ha terminado y no me ha pedido la del hijo ni ha pedido nada. Ahora ejecutamos. Voy a ponerle 27. Ahora sí que se queda esperando la del hijo. Ahora ya sí se queda esperando la del hijo.
00:32:18
Porque he puesto un único ampersand
00:32:36
Ah, bueno, perdón
00:32:39
No porque lo haya puesto un único
00:32:41
Sino porque al haberle puesto 27
00:32:42
Esta es true
00:32:44
Con lo cual necesita la otra
00:32:44
Necesita la otra
00:32:47
Que pongo solo un ampersand
00:32:48
Me da igual que esta sea
00:32:52
False, me da igual
00:32:53
Va a entrar siempre en esta
00:32:55
Porque el ampersand te obliga a evaluar la otra
00:32:56
Luego, si yo le meto 12
00:32:59
La del hijo me la va a seguir pidiendo
00:33:01
Aunque no le hace falta
00:33:03
Porque esta ya es false, ¿vale?
00:33:04
Si yo le pongo aquí 12 con un simple ampersand, le pongo 12 y se queda esperando a la otra, aunque no le hace ninguna falta, ¿vale?
00:33:06
Le pongo esta y terminado.
00:33:18
Pues esa es la diferencia entre 1 y 2, ¿vale?
00:33:21
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 3
- Fecha:
- 30 de septiembre de 2025 - 18:57
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 33′ 26″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 639.93 MBytes