Saltar navegación

Java Básico 5 operadores - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 29 de septiembre de 2025 por Stefano C.

21 visualizaciones

Descargar la transcripción

Vale, voy a grabar esta clase, por lo tanto, si habláis, me autorizáis a grabar vuestra voz en esta grabación, ¿vale? 00:00:01
Entonces, hemos estado viendo qué es una expresión, hemos estado viendo qué tipo de operadores hay, qué tipos, ¿vale? 00:00:10
Cómo se llaman los operadores, qué criterios son para clasificarlos. 00:00:17
Vamos a ver ahora el tipo de una expresión. 00:00:21
No tipos de expresión en el sentido de que hay distintos tipos, 00:00:23
O sea, el tipo en el sentido de que es un int, un var, un charro, 00:00:26
cosas por el estilo. 00:00:30
Hemos dicho que una expresión, al fin y al cabo, 00:00:31
cuando yo la evalúo, pues me devuelve un tipo. 00:00:34
¿Vale? 00:00:38
Entonces, si yo puedo pillar una expresión 00:00:39
y calcular un poquito el resultado que me va a dar 00:00:42
y decir, ay, mira, el resultado es 3,4, 00:00:46
pues esto que es lo que me va a dar es un double. 00:00:48
¿Vale? 00:00:51
O me da un entero, pues digo un entero. 00:00:51
O me da un string, un poquito esto, lo hemos hecho, 00:00:53
nosotros. ¿Os acordáis cuando yo decía en una sola línea, en un system.auto.println, decía 00:00:56
el área del cuadrado es, y luego ponía más lado por lado? En un cierto sentido, ahí estábamos 00:01:04
hablando diciendo, mira, que antes hace lado por lado, y como es int por int, el resultado es un 00:01:13
luego hace más la frase que viene antes, y como es un string más un int, el resultado es un string, ¿vale? 00:01:19
Ya allí estábamos hablando del tipo de expresión, ¿sí? 00:01:28
O cuando hemos hecho el perímetro del lado es lado más lado más lado más lado, 00:01:32
no me acuerdo si era un triángulo o un treslado o lo que era, 00:01:38
pues, y vimos que en vez de ponernos 2 más 3 más 4, nos ponía 234, ¿sí? 00:01:41
y ahí razonamos y decimos, claro, como esto es un string, le sumo un int, 00:01:47
pues todo esto es un string, le sumo otro int, todo esto es un string, 00:01:52
le sumo otro int, todo esto es un string. 00:01:55
Allí es razonar sobre el tipo de la expresión. 00:01:57
Para cambiar el tipo de la expresión tengo que pensar el operador, 00:02:00
en qué orden se ejecuta y quién son sus parámetros o sus operandos 00:02:04
para sostancialmente entender qué es esto. 00:02:13
Entonces vimos, por ejemplo, que agrupábamos lado, más lado, más lado. 00:02:17
Y entonces, haciendo así, era int, más int, más int. 00:02:21
El resultado era un int y luego lo sumamos. 00:02:24
¿Sí? ¿Os acordáis de todo esto? 00:02:27
Vale, aquí es lo mismo. 00:02:28
Ahora, dentro de Java hay un margen de posibilidad de poder modificar el tipo, de jugar con los tipos. 00:02:31
O sea, que yo puedo almacenar, por ejemplo, un tipo dentro de otro tipo siempre que sea compatible. 00:02:41
La primera forma de hacer esto es una conversión automática o implícita. 00:02:51
Esto pasa cuando hay un tipo compatible más pequeño y lo queremos tratar como un tipo compatible más grande. 00:02:59
Por ejemplo, si yo tengo un float 00:03:09
Un float se puede almacenar en un double 00:03:12
¿Por qué? Porque el float ocupa 4 bytes 00:03:17
Es preciso 4 bytes 00:03:19
Un double es preciso el doble 00:03:21
Entonces cualquier número que yo pueda representar con un float 00:03:23
Lo puedo representar con un double 00:03:27
¿Vale? 00:03:29
Entonces aquí, por ejemplo, tenemos este ejemplo 00:03:30
Tenemos float n1 es igual a 3.4 00:03:32
En realidad 3.4 sería un double 00:03:34
Aquí debería poner un f 00:03:36
¿Vale? Se me ha olvidado 00:03:37
el 3.4 va en N1 00:03:39
ahora creo double N2 00:03:44
N2 es igual a N1 00:03:46
yo estoy haciendo que un valor float 00:03:47
guardándolo dentro de un double 00:03:49
pues esto me va a hacer 00:03:51
una conversión automática a Java 00:03:54
y no le da problemas 00:03:55
en realidad en este código 00:03:57
me daría problemas en la primera línea 00:04:00
3.4 me diría este es un double 00:04:01
lo estás metiendo en un float 00:04:04
y como el double se representa 00:04:06
con 8 bytes 00:04:08
y tú lo estás guardando en un espacio 00:04:09
de 4 bytes, no lo puede hacer. 00:04:12
Entonces me tienes 00:04:15
que decir explícitamente que esto sea un 00:04:16
3,4 pero como float. 00:04:18
¿Sí? Porque os recuerdo 00:04:21
que 3,4 es un literal de dado. 00:04:22
¿Sí? Entonces aquí 00:04:25
es un pequeño error. 00:04:26
Vale. Estas son cosas automáticas. 00:04:28
Cuando paso de algo 00:04:30
más pequeño a más grande 00:04:31
me funciona. Podría hacer 00:04:34
int 00:04:35
edad es igual a 3L, punto y coma. 00:04:40
No, porque 3L es un long, es más grande 00:04:47
que un int, por lo tanto no lo puede hacer. ¿Podría hacer a long 00:04:51
n es igual a 3? Sí. 00:04:55
Porque long n es un long, 3 es un int, pero 00:04:59
un int es más pequeño, es un entero, es compatible, entonces puede entrar 00:05:03
en el último. Cuidado que tienen que ser compatibles. No puede hacer 00:05:07
int n es igual a gato 00:05:11
gato no es compatible 00:05:13
¿qué hago yo para transformar gato 00:05:16
en un número y guardarlo en un entero? 00:05:18
al revés 00:05:21
se puede hacer 00:05:23
desde un tipo compatible más grande a uno más pequeño 00:05:24
pero 00:05:28
en un cierto sentido 00:05:29
yo tengo que avisar a Java 00:05:30
que sé los peligros 00:05:33
de hacer esta operación 00:05:36
y que yo como programador la autorizo 00:05:37
Y la debería autorizar si, solo si, sé lo que estoy haciendo. 00:05:40
Si uso números decimales muy poco precisos, 3,4, 9,7, un solo decimal, 00:05:47
pues pasarlo de double a float no voy a perder nada. 00:05:57
Sí, pero soy un físico y estoy calculando partículas, 00:06:02
la posición de las partículas y la tengo que 00:06:07
guardar 00:06:09
su posición con 00:06:11
52 decimales 00:06:12
entonces pasar 00:06:15
de un double a un 00:06:17
a un float me puede 00:06:19
dar problemas, porque no todos 00:06:21
los números que se puedan representar 00:06:23
como float, como double, se pueden 00:06:25
representar como float 00:06:27
¿se entiende? 00:06:28
hay bastante más números 00:06:30
representables como double 00:06:33
que como float, ¿cuántos más? 00:06:35
¿El doble? 00:06:39
Pregunta. 00:06:42
No lo sé exactamente, pero por cada bit que yo añado, 00:06:49
en principio hago el doble de posibles números. 00:06:53
Pensad un float así. 00:06:57
Si ahora le añado un bit, 00:06:58
tengo todos los números que podía hacer antes con un 0 delante 00:07:00
y todos los números que podía hacer antes con un 1 delante. 00:07:03
Por tanto, ahora tengo el doble, añadiendo un bit. 00:07:07
¿Vale? 00:07:10
Pero no estoy añadiendo un bit 00:07:10
Estoy añadiendo 4 bytes 00:07:12
¿Vale? 00:07:15
8 más 8 más 8 más 8 00:07:17
64 bits 00:07:18
Y por cada bit que añado es un por dos 00:07:20
Entonces es por dos, por dos, por dos, por dos 00:07:23
Por dos, por dos, por dos, por dos 00:07:24
64 bits 00:07:25
¿Sí? Mucho más 00:07:26
¿Entiendes? 00:07:29
No sé si es exactamente así, pero voy a dar los videos 00:07:32
Casteed explicitas 00:07:34
¿Vale? Entonces 00:07:37
Cuando yo quiero hacer esta cosa 00:07:38
quiero, oye, tengo un 00:07:40
double y lo quiero guardar 00:07:42
en un float, tengo que decirle 00:07:44
explícitamente al programa 00:07:46
oye, yo como programador 00:07:48
me pillo la responsabilidad 00:07:50
de que luego no funcione nada y te digo 00:07:52
hazlo. Entonces él me dice 00:07:54
vale, tú me lo dices, lo has 00:07:56
puesto tú explícitamente, pues 00:07:58
te creo y lo hago. 00:08:00
Pero ten cuidado porque 00:08:02
podrías perder precisión. 00:08:04
Como sea, que por ejemplo 00:08:06
tengo el double n1, 3, 1, 4, el float n2, 00:08:08
puedo decir que n2 es igual a n1, 00:08:12
pero le digo explícitamente, trátame n1 como float. 00:08:15
Este paréntesis float paréntesis se llama cast explícito. 00:08:32
¿vale? Hacer una 00:08:38
un cambio 00:08:40
de tipo, desde un tipo a otro 00:08:42
se dice casting 00:08:44
en javiano 00:08:45
¿vale? En el mundo de Java 00:08:48
o de la programación, ¿sí? 00:08:50
Entonces, y aquí estoy haciendo 00:08:52
un cast de un double a float 00:08:53
¿sí? 00:08:56
Él sabe, va a perder precisión 00:08:58
según que el número es este 00:09:00
de aquí, no será el mismo 00:09:02
¿vale? Será un número distinto 00:09:04
pero lo hace 00:09:06
puedo hacer cast 00:09:08
por ejemplo de double a int 00:09:09
porque ya un double 00:09:11
decirle, oye eres un int 00:09:14
y guardarlo en un int 00:09:16
pero eso quiere decir que pierdo toda la parte 00:09:17
decimal 00:09:20
si yo tengo 3,4 y lo casteo a int 00:09:20
lo que obtengo es 3 00:09:24
he perdido precisión 00:09:25
pues lo mismo puede pasar entre double y float 00:09:27
a lo mejor yo tengo el 3.6798 00:09:30
53634444 00:09:32
34444 00:09:34
y cuando lo paso a float no es el mismo número 00:09:35
a lo mejor ha redondeado por arriba o por abajo 00:09:38
o a lo mejor no tiene 00:09:40
todos estos decimales, he perdido 00:09:42
algo, pero lo hace 00:09:44
porque yo explícitamente le he dicho lo puede ser 00:09:46
¿entiendes? 00:09:48
entonces, automáticas 00:09:51
o implícitas 00:09:52
cuando no pierdo nada 00:09:54
explícita, cuando dice 00:09:55
oye, perdí algo, él me da error si no pongo 00:09:58
este float, pero yo le digo, hágale 00:10:00
si hay error, no te preocupes, que sé yo 00:10:02
como es de doubles, estoy seguro que nunca 00:10:04
será algo muy muy preciso 00:10:06
pues puedo permitirme de pasar la flor y si no están los no factibles vale algunos casting de 00:10:07
algunos cambios de conversión no se pueden hacer por ejemplo internet es igual a 10 string de 00:10:15
nombres igual a pp menos n no lo puede dar porque él el operador menos vale se hace entre tipos 00:10:21
numéricos. Entonces, 00:10:32
el menos acepta un int. 00:10:34
Sí, es un operador binario, 00:10:36
necesita dos expresiones. Por un lado 00:10:37
tiene un int, ¿vale? Fenomenal. 00:10:40
¿Qué tengo al otro lado? Un string. 00:10:42
No está definido un operador 00:10:44
que pille string menos 00:10:46
int. Y por lo tanto 00:10:48
me da un error. Dice, no sé qué hacer. 00:10:50
¿Qué quiere decir gato menos un? 00:10:52
También, entre tipos compatibles 00:10:58
pero perdiendo precisión 00:11:00
y sin casting explícito me va a dar 00:11:02
problemas, ¿vale? Si yo hago 00:11:04
int n es igual a 170, es un entero 00:11:06
byte k es igual a n 00:11:08
esto estaría perdiendo 00:11:10
precisión porque entero son 4 bytes 00:11:11
y byte es un byte 00:11:14
y entonces me diría 00:11:15
no, no se puede hacer, como no le he puesto 00:11:18
el casting explícito 00:11:20
no me va a funcionar 00:11:21
si hago el casting explícito probablemente sí 00:11:23
pero me pueden salir cosas muy raras 00:11:26
¿vale? porque va a perder 00:11:28
datos y probablemente 00:11:30
como capa o sea byte va de menos 128 hasta más 127 si yo le pongo 170 lo que hará es 00:11:31
pillarme los 4 bytes pillar de estos 4 bytes sólo un byte y este byte pasarme la byte entonces me 00:11:42
saldrá un número absurdo que no tiene nada que ver con 170 dudas vale operadores que están en 00:11:48
en Java que existen. Estos 00:12:01
cinco ya los conocéis. 00:12:03
El que conocéis menos es el módulo, 00:12:05
pero ya hemos hecho ejercicios y ya lo hemos 00:12:07
utilizado alguna vez, por lo tanto, ahora ya estáis 00:12:09
en el mundo de la persona que saben que es 00:12:11
un módulo. Es decir, el 00:12:13
resultado, el resto de una operación, 00:12:15
de una división entera. 00:12:18
¿Sí? Lo hicimos también aquí en la pizarra, 00:12:19
si os acordáis, que cuando hago módulo 00:12:22
un número, siempre el resultado 00:12:23
será entre cero y ese número 00:12:25
menos uno. ¿Sí? Vale. 00:12:27
Luego están operadores lógicos o booleanos. Estos operadores lógicos lo 00:12:29
que hacen es pillar valores de verdad y combinarlos entre ellos. O sea, verdadero 00:12:35
y falso, y el resultado será verdadero o falso. 00:12:41
Ahora casi vamos a hacer una tabla. 00:12:45
Elend 00:12:57
el end 00:13:00
el end es un operador 00:13:04
que puede pillar true o false 00:13:09
y true o false 00:13:11
es un operador 00:13:14
que pilla binario 00:13:16
pilla dos funciones 00:13:18
dos expresiones, ¿lo conocéis? 00:13:20
¿lo habéis visto alguna vez en la vida? 00:13:22
¿eh? 00:13:25
no, vale 00:13:26
si esto y esto 00:13:27
son verdaderos, el resultado es verdadero. 00:13:30
En todos los otros casos. Es fácil. O sea que 00:13:36
una operación en n es verdadera si y solo si 00:13:41
las dos expresiones que tiene son verdaderas las dos. 00:13:46
A la vez. 00:13:50
El or es también un operador 00:13:55
binario que es verdadero 00:14:04
si al menos una de sus expresiones es verdadera. 00:14:10
Es decir, que si esta es verdadera y esta es verdadera, 00:14:14
ahora es verdadero. 00:14:18
True or false, verdadero. 00:14:20
False or true, no false, true, es verdadero. 00:14:23
Solo en el caso en que los dos sean falsas, es falso. 00:14:28
¿Sí? 00:14:36
Y luego está el not, este símbolo aquí, 00:14:37
que es un ario 00:14:41
y prefijo 00:14:43
se pone delante de una expresión 00:14:44
y sustancialmente 00:14:47
el not 00:14:49
lo que hace es que si 00:14:49
si es true o no es false 00:14:53
dice false 00:14:57
cambia 00:14:58
el valor 00:15:00
booleano 00:15:02
como solo hay true o false 00:15:03
dudas hasta aquí 00:15:07
tengo un problema 00:15:08
que no se verá esto en los 00:15:11
en el vídeo 00:15:13
pero tanto vosotros lo habéis tomado a puntas 00:15:13
ningún problema 00:15:17
vale 00:15:18
estos son los operadores 00:15:20
booleanos, si os fijáis hay dos tipos 00:15:25
de AND, dos tipos de OR 00:15:27
nosotros siempre usamos el doble 00:15:29
vale, la diferencia 00:15:31
entre esto 00:15:33
es que esto se llama lazy 00:15:34
en vez de este de aquí se llama normal 00:15:37
vale, AND lazy 00:15:39
o end normal. ¿Qué hace el end lazy? 00:15:41
El end lazy, cuando tú 00:15:43
haces un end, tienes dos expresiones. 00:15:45
Expresión 1, end, expresión 00:15:47
2. ¿Vale? Lo que va a 00:15:49
hacer es mirar la expresión 00:15:51
1. Si la expresión 00:15:53
1 es falsa, 00:15:55
no necesita ir a evaluar 00:15:57
la segunda expresión. 00:15:59
Ya sabe que el resultado es falso. 00:16:01
Entonces ahorra tiempo. 00:16:03
No evalúa la segunda expresión 00:16:05
y ya te da el resultado falso. 00:16:07
Mientras que un end solo, 00:16:09
Evalúa las dos 00:16:10
Y luego te dan un resultado 00:16:12
Y lo mismo 00:16:14
El or lazy 00:16:15
Una 00:16:17
Si la primera 00:16:19
La primera expresión que evalúa 00:16:21
Es true 00:16:24
Él sabe que el resultado va a ser true 00:16:24
Independientemente del valor de la segunda 00:16:26
Por lo tanto 00:16:29
No evalúa la segunda 00:16:30
Y hace la true 00:16:31
¿Se entiende? 00:16:31
Esta es la diferencia 00:16:34
Entre poner uno o dos 00:16:35
Como con dos 00:16:37
Funciona mejor 00:16:38
pues pongo normalmente dos 00:16:39
el uno lo pongo solo 00:16:41
si hay alguna situación en mi vida 00:16:42
en el que tengo 00:16:45
sí o sí, quiero sí o sí 00:16:47
evaluar las dos expresiones 00:16:49
antes de decir si true o false 00:16:51
entonces en ese caso 00:16:53
uso el end o el off, sí o no 00:16:55
¿Dudas? 00:16:57
Vamos a los operadores de comparación 00:17:01
¿Vale? Se pueden comparar 00:17:05
entre ellos varios tipos, como enteros, float, double, char, 00:17:07
y cosas por el estilo. 00:17:13
El primer operador es el igual igual, ¿vale? 00:17:15
Cuidado, es distinto del igual a secas, ¿vale? 00:17:20
Nosotros hemos usado el operador igual a secas en las variables 00:17:24
int var es igual a 3, ¿vale? 00:17:27
Y ese operador, ese igual, es un operador de asignación. 00:17:31
Es asignarme este valor a esta variable. 00:17:35
Mientras aquí utilizamos otro símbolo que es igual, igual, que es un operador de comparación 00:17:39
para ver si lo que está a la izquierda es igual a lo que está a la derecha. 00:17:44
Si son iguales, devuelvo true. 00:17:49
Si son distintos, devuelvo false. 00:17:52
Entonces, 3 igual, igual a 3. 00:17:56
Fácil. 00:18:04
Cuidado, esto funciona 00:18:05
Bien con todo 00:18:08
Excepto 00:18:10
Con la string 00:18:12
En realidad, funciona bien 00:18:13
Con todo, excepto que con objetos 00:18:16
String es un objeto 00:18:18
¿Vale? Entonces 00:18:20
Con string el igual igual no se usa 00:18:21
O se usa si se sabe 00:18:24
Que es, ¿vale? Pero hasta que no 00:18:26
Veremos los objetos, no sabremos 00:18:28
Que es como funciona el igual igual 00:18:30
Entonces, entre dos string 00:18:31
no uso el igual-igual. 00:18:34
¿Vale? 00:18:37
Entre todos los tipos primitivos 00:18:38
sí que puedo usar el igual-igual. 00:18:40
¿Vale? 00:18:42
Not igual. ¿Qué será esto? 00:18:43
Es distinto. 00:18:47
Es al revés del otro. 00:18:50
Si igual-igual 00:18:53
daría true, not igual daría falso. 00:18:54
Y al revés. Me estoy preguntando 00:18:57
si esta expresión 00:18:58
son distintas. Si son distintas, 00:19:00
true. Si son falsas, si son 00:19:02
iguales, falsas. ¿Vale? 00:19:04
y al revés de la anterior. 00:19:06
Mayor. 00:19:08
Si lo de la izquierda, la expresión de la izquierda, 00:19:12
es mayor que la de la derecha, dará true, 00:19:14
y si no, dará false. 00:19:17
Fijaos, mayor estricto. 00:19:19
Si son iguales, queda. 00:19:21
Tres mayor que tres. 00:19:25
Falso. 00:19:27
False. 00:19:29
Menor, lo mismo. 00:19:31
Pero al revés. 00:19:33
Luego está el mayor igual, 00:19:34
que quiere decir, es true. 00:19:36
si lo de la izquierda 00:19:39
es mayor de lo de la derecha 00:19:41
o si son iguales 00:19:43
el menor igual también 00:19:47
¿se entiende? 00:19:48
dudas, preguntas 00:19:50
vale 00:19:53
me salto esto 00:19:54
lo veremos 00:19:57
hoy, pero un poquito más tarde 00:19:58
y a nivel de bits 00:20:01
no lo veremos 00:20:03
estas son operaciones que se pueden hacer 00:20:04
con los bits 00:20:07
de una variable, ¿vale? 00:20:08
Y, sustancialmente, se llaman shift 00:20:10
porque mueven los bits a la derecha o a la izquierda. 00:20:12
Hay algunas operaciones en las que esto es fundamental 00:20:16
e interesantísimo, ¿vale? 00:20:18
Pero nosotros no vamos, sustancialmente, 00:20:21
a utilizar los bits en la vida, ¿vale? 00:20:23
Vosotros allá afuera, en alguna empresa 00:20:27
que toquéis esto, puede ser. 00:20:29
A mí lo que me interesa es que sepáis 00:20:32
que hay operadores que toquetean los bits, ¿vale? 00:20:33
Pero no los vamos a ver 00:20:38
¿Sí? 00:20:40
Vale 00:20:44
Entonces, vamos a hacer 00:20:44
Alguna prueba 00:20:46
La hago aquí 00:20:47
Porque así lo hago así 00:20:49
Con un poco de suerte 00:20:55
Si escribo aquí 00:20:58
Se graba 00:20:59
Entonces 00:21:00
Vamos a hacer, por ejemplo 00:21:02
Dos es mayor 00:21:05
Que tres 00:21:07
¿Qué tipo tiene esta expresión? 00:21:09
Suspenso 00:21:19
¿Qué tipo tiene esta expresión? 00:21:20
Buriano 00:21:24
¿Sí? 00:21:25
Contestaba preguntas, cuidado 00:21:27
¿Y cuánto vale? 00:21:28
False 00:21:32
Esto de aquí, diría, no, dos no es mayor que tres 00:21:33
False 00:21:36
Cinco más siete 00:21:37
Mayor o igual 00:21:42
6 más 6 00:21:44
¿Qué tal? 00:21:48
¿5 más 7 cuánto es? 00:22:03
¿Es mayor o igual que 12? 00:22:07
Sí, true 00:22:10
¿De acuerdo con esto? 00:22:11
Vale 00:22:14
¿Qué tipo tiene esta expresión? 00:22:14
Bulear 00:22:36
El tipo es boolean, siempre boolean. Al final, si lo hago bien, me da un true o un false. 00:22:36
¿Y qué me da? Esta habíamos dicho que era false. 00:22:42
Entonces, hasta sin ir a mirar esto, podría decirte que es false. 00:22:50
Porque false y false da la false y false y true da la false. 00:22:56
Si no fuera lazy, o sea con un end solo, pues entonces evaluaría esto también, esto sería true. 00:23:01
Luego dice verdadero y falso, pues falso. 00:23:12
¿Sí? 00:23:20
Sí. 00:23:21
¡Borra! 00:23:24
¡Borra! 00:23:25
¡No, no! 00:23:27
¡Pulá! 00:23:29
¡Pulá! 00:23:30
¡Pulá! 00:23:32
¡Borra! 00:23:33
¿Qué sería tu? 00:23:36
¿Qué era tu capítulo? 00:23:41
¿Cómo se llama? ¿Puedo decir un caso sobre esto? 00:23:43
Mámer 00:23:45
Píter, hacer, seleccionar, seleccionar, espera 00:23:46
Ahí 00:23:56
Ok, ahora estoy de acuerdo 00:23:58
¿Y esto? 00:24:00
Sería true. 00:24:02
Sería true. 00:24:07
¿Vale? 00:24:08
Es un or. 00:24:09
Entonces es falso solo si las dos expresiones son falsas. 00:24:10
Falso o verdadero. 00:24:16
Verdadero. 00:24:18
¿Sí? 00:24:21
¿Dudas? 00:24:22
Pero ahí aunque es doble, está evaluando las dos. 00:24:23
Si es doble, antes evalúa esta. 00:24:26
Ve que es falso. 00:24:29
Si es falso, no lo sabe. 00:24:30
Porque depende de la otra. 00:24:32
entonces se iría a evaluar también la otra sale true y por lo tanto si esto hubiese sido true 00:24:33
entonces no habría falta mirar ¿vale? ¿dudas hasta aquí? va entonces rápidamente tenemos este código 00:24:40
¿Vale? ¿Qué hace este código? 00:25:07
¿Qué hace este código? 00:25:20
Nadie 00:25:35
Nadie 00:25:35
Venga 00:25:39
Vamos ahora 00:25:44
hacer que esto funcione y pregunta son iguales y a continuación me debería decir true o false 00:26:02
son iguales me dice true si son false me dice false vale y luego dice la suma de ellos es mayor 00:26:11
que el producto de ellos si eso es verdadero dice true si no es false entonces qué puedo hacer yo 00:26:19
aquí para que me conteste true o false a esto. Ideas? 00:26:27
No lo sé. Yo creo, o sea, aquí no necesito saber el tipo de una variable. 00:27:03
Lo que hago es que me crea una variable de ese tipo, si quiero. 00:27:09
Dos posibles soluciones. ¿Se os ocurre alguna? 00:27:14
Olvidaos de esto por ahora. 00:27:18
Pensáos a esto. 00:27:21
¿Cómo puedo preguntarme si esto que he leído y esto que he leído son iguales? 00:27:23
¿Cómo lo hago? 00:27:29
Mira, opción número uno. 00:27:42
Ya está. 00:27:47
Pégale detrás a este de aquí el resultado de esta operación de aquí. 00:27:51
¿Vale? Entonces él me pillará ahí. 00:27:58
Verás si es igual a D. 00:28:00
si estos de aquí son iguales valen lo mismo, me dará true y por lo tanto pegará detrás true 00:28:01
y me dará son iguales true, y si estos son distintos pondrá false. ¿Vale? Vamos a ver si funciona. 00:28:07
Cierta un int, tres, inserta un double, cuatro, dice son iguales, false. Cierta un int, tres, inserta un double, tres, son iguales. 00:28:13
falta todavía un par de clases 00:28:31
para llegar al top 00:28:39
ahora, como podría haberlo hecho 00:28:40
de otra forma lo mismo 00:28:46
tengo una variable 00:28:47
que se llama b 00:29:03
de tipo boolean 00:29:05
y lo que vale 00:29:07
es el resultado de esta expresión 00:29:09
el resultado de esta expresión es true 00:29:11
si los dos valores son iguales 00:29:13
si son distintos por lo tanto una vez que tengo aquí almacenado el valor lo pego detrás era más 00:29:16
o menos lo que me preguntaba es tu pregunta si esto funciona exactamente igual que antes 00:29:25
vale 3 y 3 me da true 3 y 4 me da false vale ok perfecto entonces ahora que hemos visto cómo se 00:29:37
hace esto? ¿Cómo hago esto? Pensadlo un minuto, luego alguien me lo dice. Pensadlo 20 segundos y luego alguien me lo dice. 00:29:48
Vamos a hacer divide tímpeda, ¿vale? Antes me hago boolean operación, ¿vale? Es igual a algo. Y este algo lo escribo 00:30:24
aquí, ¿vale? Ahora, ¿cuál es la operación? ¿Quién me lo dice? 00:30:36
B mayor que I por D. ¿Se llama I igual o no? 00:30:45
¿Os parece bien? ¿Qué es I por D? Tipo. ¿Qué tipo tiene I por D? 00:30:56
¿Vale? Porque es 00:31:12
entero multiplicado 00:31:15
por un doble. Entonces, esta cosa aquí es un 00:31:17
doble. Mayor o menor 00:31:19
lo tengo que comparar con otro doble. 00:31:21
¿Veis qué es? ¿Qué tipo tiene 00:31:23
B? Culeano. 00:31:28
Entonces, ¿qué quiere decir? ¿Es verdadero 00:31:29
mayor que 37? 00:31:32
¿Veas si verdadero es 00:31:35
mayor que 37? 00:31:37
¿Vale? Estoy haciendo una operación 00:31:39
entre tipos distintos. 00:31:41
Hoy te digo, ¿es más gato o 00:31:43
42. 42 es el sentido de la vida, pues no importa lo demás, pero quiero saber. Entonces, esto 00:31:45
no me vale. Me está preguntando si la suma de ellos es mayor que el producto. Entonces 00:31:56
digo, la suma de ellos es mayor que el producto. Si es verdadera esta cosa, me dirá true, 00:32:09
si no, es false. 00:32:19
Si yo le pongo 00:32:21
le pongo uno 00:32:22
y uno, me dice true. 00:32:32
Uno más uno 00:32:36
es mayor que uno por uno. 00:32:37
Si yo le digo 00:32:41
dos y dos, 00:32:42
me dice que son... 00:32:45
me dice falso. ¿Por qué me dice falso? 00:32:46
Dos más dos 00:32:49
2 por 2 00:32:50
4 es mayor que 4 00:32:52
¿no? 00:32:56
y está preguntando si es mayor 00:32:58
no si es mayor o igual 00:32:59
por lo tanto es correcto o es falso 00:33:00
¿sí? 00:33:03
que me pongo 00:33:05
3 y 3 00:33:06
true 00:33:08
¿por qué? 00:33:10
3 más 3 es 6 00:33:13
no, perdón, falso 00:33:14
3 más 3 es 6 00:33:17
3 por 3 es 9 00:33:20
entonces la suma no es mayor que la 00:33:21
¿se entiende? 00:33:24
¿dudas? 00:33:27
vale 00:33:29
ahora me pregunto 00:33:29
¿son los dos números 00:33:30
positivos 00:33:38
más pos? 00:33:39
pos es igual a qué 00:33:50
¿cuál es una expresión booleana 00:33:52
que me permite 00:33:56
establecer si 00:33:58
los dos números que has puesto 00:33:59
son positivos los dos. 00:34:02
¿O lena no? 00:34:10
¿O de lansi? 00:34:12
Damos un minuto 00:34:17
para que pensen. 00:34:18
¿Quién lo sabe? 00:34:35
No todos a la vez, por favor. 00:34:39
Doy un minuto más, 20 segundos más 00:34:49
para pensarlo. 00:34:51
¿Quién lo sabe ahora? 00:35:00
Este vídeo va a ser 00:35:02
La pregunta es, ¿son los dos números que te he dado positivos? 00:35:03
Tienes que decir, ¿cómo puedo hacer una expresión booleana que sea true si los dos números son positivos o false si los dos números no son los dos positivos? 00:35:15
¿Uno más? ¿Quién más? 00:35:29
¿Tres? 00:35:33
voy a preguntar a antes él 00:35:33
por si quiere intentarlo 00:35:37
antes 00:35:43
mayor que cero 00:35:47
mayor que cero 00:35:49
así 00:35:51
no, se enfala 00:35:52
más 00:35:58
el segundo era el fondo 00:35:59
otro, otro, no 00:36:01
varinia 00:36:05
varinia 00:36:08
Igual a true, para saber si es positivo. 00:36:08
Pero si ya es true, ya es true. 00:36:25
No, pero estás comparando si es que el resultado que va a salir en un día no es igual a un día no es true. 00:36:27
No, pero no se compara con un trupuleano, porque si es true, ya es true. 00:36:33
O sea, me lo escribo aquí. 00:36:38
Y mayor que cero, 00:36:41
si y es mayor que cero, es true. 00:36:44
Y si yo le pongo es igual a true, 00:36:46
es true igual. 00:36:48
Entonces sería un string. 00:36:52
Entonces estoy comparando 00:36:53
un booleano con un string. 00:36:55
Entonces explota. 00:36:57
Pero normalmente los valores 00:36:58
booleanos no se comparan 00:37:00
con su valor, porque ya son 00:37:03
ese valor. Si y es mayor que cero, 00:37:05
ya es true. Y preguntarme 00:37:07
¿mayo es igual a true? Sí. 00:37:09
Si es true, es true. Y si es false, es de no es true. 00:37:11
Entonces, esto no hace falta 00:37:13
porque esta expresión 00:37:15
de aquí ya es un 00:37:17
true o false. ¿Pero de qué hago? 00:37:19
¿Lo veis? 00:37:25
¿Sí? ¿Os gusta? 00:37:27
Si i es mayor que 00:37:32
cero, ¿vale? 00:37:33
And 00:37:36
y al mismo tiempo 00:37:36
d es mayor que cero 00:37:39
pues entonces es true. 00:37:41
Si este es true y este es true, entonces me da la true. 00:37:43
¿Con qué uno de los dos sea false? Me da la false. 00:37:48
La pregunta que podría surgir aquí es, ¿cero es positivo? 00:37:53
Habría que preguntarlo a un matemático. ¿Matemáticos en la sala? No. 00:38:02
Por lo tanto, digo yo, si cero es positivo, ¿qué hago? 00:38:06
Mayor o igual. 00:38:11
Claro. 00:38:13
Muy bien. 00:38:15
Si el entero es mayor o igual a cero, y al mismo tiempo el double es mayor o igual a cero, 00:38:15
los dos son mayores o iguales a cero, por lo tanto son los dos números positivos, sí. 00:38:29
Con que uno de los dos, o los dos, sean menores de cero, 00:38:34
estrictamente menor que cero, pero ya entra en este caso aquí, 00:38:42
pues entonces me da la fulgida. 00:38:45
Vamos a ver si funciona. 00:38:47
¡Ey! Le digo 5 y 5. Pues los dos números son positivos, ¡true! Perfecto. 00:38:48
Ahora le digo esto y le digo menos 5 y 5. ¡Alche! Muy bien. 00:38:56
Hay al menos un número positivo. 00:39:13
Pensadlo un minuto. Pensadlo si lo estáis haciendo bien. 00:39:36
¿Quién me lo dice? 00:39:51
¿Quién me lo dice? 00:39:58
¿Alguien lo cambiaría? ¿Les parece correcto? 00:40:06
Está preguntando si al menos uno de los dos es positivo 00:40:31
¿Vale? 00:40:35
Si esto es positivo 00:40:36
Ya es true 00:40:38
Con el or sería true 00:40:39
Si esto es positivo 00:40:40
Con el true, true 00:40:42
Si los dos son positivos 00:40:44
Son true 00:40:45
Si son positivos, entonces los dos son true 00:40:47
True or true es siempre true 00:40:49
El único caso en el que no funcionara 00:40:51
Sería false 00:40:54
Es cuando esto es negativo 00:40:55
Y al mismo tiempo esto es negativo 00:40:57
¿Vale? 00:40:59
o sea que 00:40:59
si esto o esto 00:41:01
ninguno de los dos son positivos 00:41:03
pues entonces me diría false 00:41:05
¿vale? false or false 00:41:07
false 00:41:09
5 y menos 5 00:41:10
al menos uno 00:41:23
es positivo pero los dos números 00:41:25
no son positivos 00:41:27
si ahora yo pongo 00:41:28
menos 5 y menos 5 00:41:30
me dice hay al menos 00:41:33
un número positivo 00:41:35
Y con esto podéis jugar 00:41:36
Días enteros 00:41:42
¿Vale? 00:41:44
Haciendo vuestras condiciones propias 00:41:45
Pensando 00:41:48
¿Cómo hago? 00:41:48
Seguir pillando tres números 00:41:50
El primer número es mayor que el segundo 00:41:51
El segundo y el tercero 00:41:54
Y poner allí una cosa booleana 00:41:56
Grande así 00:41:59
¿Vale? 00:42:00
Que os resuelva este problema 00:42:01
Tranquilos 00:42:02
Si no lo hacéis vosotros 00:42:05
Dentro de poco os lo mandaré yo 00:42:06
si habéis ya empezado a razonar 00:42:09
en booleano, mejor 00:42:12
¿dudas? 00:42:13
¿preguntas? 00:42:18
aquí hay otro ejemplo 00:42:35
que hemos hecho ahora, ¿vale? 00:42:36
la pregunta es esta de aquí 00:42:37
y esta es la 00:42:38
solución a la que hemos llegado 00:42:42
esto se podría sustituir 00:42:43
con todo esto de aquí 00:42:45
pero como lo hemos calculado 00:42:47
ya, pues lo podemos sustituir 00:42:50
Sí, entonces aquí tenéis algunos ejemplos básicos de cómo se usa AND, OR y cosas por el estilo. 00:42:52
Podríamos añadir en vez de... No, ha sido complejo. 00:43:05
No hemos usado el NOT aquí, ¿vale? Lo que quería usar ahora, pero bueno. 00:43:11
Nosotros pillamos este de aquí y dices, hay al menos un número positivo. 00:43:17
Queremos decir que no hay al menos un número positivo, pues ponemos un NOT delante. 00:43:20
y cambia. 00:43:25
Si era true, es false, es false, es true. 00:43:27
La combinación 00:43:30
de esas cosas se puede servir. 00:43:32
De hecho, un end se puede escribir como un 00:43:33
or, y un or se puede escribir 00:43:36
como un end si yo pongo 00:43:37
los not en sitios 00:43:40
correctos. Por ahora no 00:43:42
mato más 00:43:46
de lo que ya he tomado. 00:43:48
Ahora, todas las cosas 00:43:51
de operadores booleanos, 00:43:52
lógica booleana, etc. 00:43:54
En realidad, 00:43:57
se usan aquí. 00:43:58
Existe un operador 00:44:01
ternario, ¿vale? 00:44:02
Ternario condicional, que lo que hace es 00:44:04
recibir tres parámetros. 00:44:06
¿Vale? Tres expresiones. 00:44:09
La primera es una expresión 00:44:10
booleana. ¿Vale? 00:44:12
Que da otro ojo. 00:44:14
Si es true, 00:44:16
el resultado de este operador, 00:44:18
esta es una operación, ¿vale? 00:44:20
Será expresión 1. 00:44:22
Sea cual sea la expresión. 00:44:24
Si en vez de la condición se disuelve a false, el resultado será expresión 2. 00:44:25
Por ejemplo, pillo dos números, me entero un dado, así esto no me lo considera, se queda allí, y lo que me quiero preguntar es, ¿cuál de los dos números es el más grande? 00:44:36
El más grande es, y ahora yo aquí quiero escribir el número más grande de los dos. 00:45:00
¿Cómo lo hago? 00:45:16
Doble resultado es igual a I es mayor que D, me pregunto. 00:45:21
Si I es mayor que D, entonces I es el mayor. 00:45:33
Si no, D es el mayor. 00:45:40
Lo repito. 00:45:51
Condición. Si esta condición es verdadera, todo esto vale esto. Si esta condición es falsa, 00:45:51
todo esto vale esto. Al final de esta cosa aquí, compara i más d. Si i es d, si i es mayor que d, 00:46:04
te dirá que i es el mayor. Entonces lo pone aquí. Entonces yo puedo poner más res aquí. Si este de 00:46:17
aquí es falso, entonces es D el mayor. Si son iguales, ¿qué pasa si son iguales? 00:46:24
Devuelve D, ¿vale? Porque 3 no es mayor que 3 y por lo tanto iría a la sección falso. 00:46:37
Me devolvería D, pero da igual porque entre 3 y 3, ¿cuál es el número mayor? 00:46:52
¿Sabes si funciona? 0, 5, doble 3. El número más grande es 5.0. ¿Por qué 5.0? ¿Y qué ha hecho? 00:46:56
En términos informáticos, como si fuera una persona que estudia informática y que sabe 00:47:14
porque el profesor me lo ha dicho antes. ¿Estás de acuerdo que 5 es el entero? ¿Por qué me dice 00:47:20
5.0 00:47:35
porque he hecho 00:47:36
un casting 00:47:42
implícito 00:47:49
una conversión automática 00:47:51
cuando he llegado aquí 00:47:54
lo que ha hecho es devolverme 00:47:57
i, que es un entero 00:47:59
pero lo estoy guardando dentro de un double 00:48:00
no pasa nada, el entero 00:48:02
son 4 00:48:04
el double son 8 00:48:05
pues puedo guardar tranquilamente un entero dentro de un double. Al revés, no. Esto me daría error. 00:48:07
Normalmente aquí y aquí tiene que ir el mismo tipo o tipos compatibles. No puedo por un lado 00:48:18
poner un stringer, por un lado poner un int, porque esto al final valdrá, o int o stringer, 00:48:29
tengo que poder tener un tipo de esta 00:48:34
expresión. Si yo aquí le 00:48:36
pongo hola, ¿qué 00:48:38
tipo tiene esta expresión? 00:48:42
No se sabe 00:48:45
porque si esto es verdadero sería 00:48:46
string y si esto es falso 00:48:48
sería double. Por lo tanto, 00:48:50
no tiene un tipo preciso. 00:48:52
Tiene un doble tipo. 00:48:55
No me vale. En el momento en que le pongo 00:48:56
i, sería 00:48:58
lo mismo. ¿Vale? Esto 00:49:00
y esto tienen tipos distintos. 00:49:02
Pero en el momento en que 00:49:05
yo digo esto, pues 00:49:06
él dice, vale, pero esto se puede castear 00:49:08
implícitamente a double. Este es 00:49:10
un double. Me vale que esta expresión 00:49:12
sea un double. Y lo guardas en un 00:49:14
double. Vale. 00:49:16
Ningún problema. Te quito 00:49:18
los problemas. El problema está. 00:49:20
Pero hago yo implícitamente las 00:49:22
conversiones necesarias para que esto funcione. 00:49:24
Vale. 00:49:36
Entonces, 00:49:39
son los 00:49:44
dos números 00:49:45
pares 00:49:46
Entonces, lo hago distinto. Los dos números son, escribirá pares, si son pares los dos, impares, si son impares los dos. 00:49:49
Uf, ya lo está haciendo demasiado difícil. 00:50:38
Y lo que sea si uno es par y el otro impar. 00:50:41
Por ahora, si no son concordantes no escribo nada, me da igual lo que sea, solo pienso 00:50:56
en estos dos. 00:51:02
¿Vale? 00:51:03
Luego modificamos. 00:51:04
¿Qué hago? 00:51:06
Cuidado, ¿eh? 00:51:07
Lo que te digo. 00:51:08
Eso dice los dos números son, y yo quiero que me esquiva pares. 00:51:09
Si los dos números que te he dado son pares, impares. 00:51:14
Si los dos números que te he dado son impares o... 00:51:18
No, hagamos distinto. 00:51:21
No pares. 00:51:22
Ahí, ahí. 00:51:23
Ahora te lo digo. 00:51:23
No pares si no son pares los dos. 00:51:24
Ahí, ya está. 00:51:32
Perfecto. 00:51:33
No pares. 00:51:34
No pares. 00:51:35
Fiesta, fiesta. 00:51:37
Sí. 00:51:38
Sí. 00:51:41
Si los dos números que te he dado son pares los dos, quiero que tú me digas, los dos números son pares. 00:51:41
Si en vez, en cualquier otro caso, si no son pares los dos, dices, los dos números son no pares. 00:51:50
¿Entendéis? 00:52:01
¿Cómo lo haces? 00:52:02
Si lo tenéis, levantáis una mano. 00:52:10
Hago ejemplos. 00:52:31
Si pongo dos y dos, me dice pares. Si pongo dos y cinco, pares. 00:52:33
Uno lo tiene 00:53:03
No lo tiene 00:53:22
A lo mejor no 00:53:26
¿Sí o no? 00:53:30
No me lo digas 00:53:33
¿Puedes dejar un momento? 00:53:35
Bebes, bebes. 00:53:38
Bebes, bebes. 00:53:45
¿Votas los poquitos? 00:53:46
¿Qué? 00:53:46
¿Qué? 00:53:49
¿Qué? 00:53:51
¿Qué? 00:53:53
¿Qué? 00:53:57
¿Qué? 00:54:01
¿Qué? 00:54:03
¡Gracias! 00:54:33
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Autor/es:
Stefano Chiesa
Subido por:
Stefano C.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
21
Fecha:
29 de septiembre de 2025 - 11:46
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
54′ 43″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
459.12 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid