20261005 SentenciaIf_3 - 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:
Vale, aquí tenemos ese diagrama de flujo.
00:00:02
Vale, aquí tenemos, ¿cuál es nuestra condición?
00:00:08
Nuestra condición es, número 1, lo voy a llamar n1 para que sea más, igual a n2.
00:00:11
Esta es la condición.
00:00:18
¿Qué pasa si se cumple?
00:00:22
Pues si se cumple, se está haciendo todo esto.
00:00:24
Todo esto de aquí
00:00:27
Se está haciendo
00:00:30
Si se cumple
00:00:32
Todo eso
00:00:36
Si se cumple
00:00:37
Todo esto de aquí
00:00:40
Lo que está en este bloque
00:00:41
¿Qué pasa si no se cumple?
00:00:43
Si no se cumple
00:00:46
Está haciendo
00:00:48
Todo esto
00:00:48
En este caso es más cortito
00:00:50
Una sola sentencia
00:00:52
Todo esto es lo que está haciendo aquí
00:00:53
Si no se cumple
00:00:54
Todo eso está ahí
00:00:55
Haciendo
00:00:56
¿Vale?
00:00:57
Y tanto si se cumple, que hará todo eso de ahí, como si no se cumple, que hará todo esto de aquí, una vez que se ha hecho o esto o esto, una de las dos cosas, pues ya el programa sigue, ¿dónde sigue? Pues aquí, este punto es este punto, ¿vale?
00:00:59
seguimos por aquí
00:01:25
ejecutando lo que venga después
00:01:28
en este caso son unas sentencias
00:01:30
pero podrían ser muchas las que fueran
00:01:32
vale, pues cada vez que vemos algo así
00:01:34
tenemos que ver el diagrama de flujo
00:01:40
las sentencias de arriba
00:01:42
es lo que hay arriba
00:01:43
lo que sea
00:01:45
la decisión
00:01:46
¿qué se hace en la rama del sí?
00:01:49
lo que hay en el if
00:01:51
en este bloque entre llaves
00:01:53
¿qué se hace en la rama del no?
00:01:54
lo que hay aquí en el else
00:01:57
en este bloque entre llaves
00:01:58
cuando se ha hecho
00:02:00
la que sea, en cada ejecución
00:02:02
puede ser una distinta, cuando se ha hecho
00:02:04
la que sea, el programa
00:02:06
continúa su camino
00:02:08
continúa su camino donde? aquí
00:02:09
este es el punto donde el programa
00:02:12
continúa su camino
00:02:14
ahí, ahí lo continúa
00:02:16
independientemente de si ha hecho esto o esto
00:02:18
continúa con lo que toque
00:02:20
y ahí podría
00:02:22
seguir habiendo sentencias
00:02:24
porque el programa es la combinación
00:02:26
de toda la secuencia
00:02:28
de sentencias que van haciendo
00:02:30
todo lo que me van pidiendo y ya está
00:02:32
vale
00:02:33
entonces vamos a ejecutarlo
00:02:37
antes de
00:02:40
modificar un poco más
00:02:41
entonces efectivamente ejecutamos
00:02:43
esto
00:02:50
primero nos pide los números
00:02:50
esto es antes del if, vale
00:02:56
primero va a hacer esto
00:02:59
porque esto es lo que va antes de la sentencia
00:03:01
de decisión, vale, primero nos pide
00:03:03
los números
00:03:05
pues venga, el número 1
00:03:06
pues el 45
00:03:08
nos sigue pidiendo
00:03:10
el número, vale
00:03:12
ahora estamos pues haciendo esto
00:03:14
número 2, le vamos a poner el 45
00:03:16
otra vez, cuando le demos
00:03:18
al enter ya estamos aquí, ahora
00:03:20
se hará la pregunta, como son iguales
00:03:22
entrará aquí
00:03:24
y empezará a hacer todo esto
00:03:26
efectivamente
00:03:28
como son iguales y esta condición es
00:03:31
true, entra en este bloque
00:03:32
y me muestra el mensaje
00:03:34
venga, segunda oportunidad
00:03:36
me pide el número uno otra vez
00:03:39
yo meto el número uno
00:03:41
pues lo que sea
00:03:44
me pide el número dos
00:03:44
otra vez
00:03:48
meto el número dos, el que me dé la gana
00:03:49
y luego independientemente
00:03:51
ya de cómo sean
00:03:54
independientemente de cómo sean
00:03:55
te mostraba la suma
00:03:57
pues efectivamente
00:03:59
me muestra la suma
00:04:01
Y ya está, como ya ha terminado esto, el programa ahora ya ha continuado por aquí.
00:04:03
Esto lógicamente no lo hace, porque esto es lo que se hubiera hecho, se hubiera hecho, si la condición hubiera sido falsa.
00:04:09
Esto es lo que se hubiera hecho.
00:04:19
Pero como la condición ha sido true, lo que se ha hecho es esto.
00:04:20
O se hace esto de aquí, o se hace esto de aquí.
00:04:23
O una, o la otra.
00:04:27
Y cuando ya se ha hecho la opción correspondiente
00:04:29
El programa sigue con lo que toque
00:04:32
Que eso es lo que ha hecho
00:04:33
Seguir con lo que toca
00:04:35
¿Vale?
00:04:36
Bueno, ¿entendido?
00:04:47
Vale, a ver, pequeñas modificaciones sintácticas
00:04:51
Para irnos familiarizando
00:04:55
Vale, por lo general yo he dicho
00:04:57
Que las sentencias que se hacen
00:05:02
Tanto en la rama del sí como en la rama del no
00:05:03
irán entre esos símbolos de llave
00:05:06
y eso es lo que se llama un bloque, ¿verdad?
00:05:10
Esto es un bloque con un montón de sentencias
00:05:13
y esto es otro bloque con otro montón de sentencias.
00:05:16
Vale, bueno, en este caso con una sola.
00:05:21
Bueno, pues,
00:05:25
en el caso de que el bloque tenga una sola sentencia,
00:05:27
en el caso de que tenga una sola,
00:05:33
las llaves se pueden quitar
00:05:35
solo en ese caso
00:05:37
por ejemplo, en este ejemplo
00:05:39
aquí no podríamos quitar las llaves
00:05:42
porque la rama del sí
00:05:44
y la rama del true
00:05:46
tiene un montón de sentencias
00:05:47
las tengo que poner obligatorias
00:05:48
pero la rama del else
00:05:51
solo tiene una
00:05:55
entonces cuando solo hay
00:05:55
una sentencia en la rama que sea
00:05:59
la de if, else, true, false
00:06:02
la llave es opcional
00:06:04
y el programa sigue significando
00:06:06
exactamente lo mismo
00:06:09
¿vale? entonces lo que yo he escrito antes
00:06:10
y esto es idéntico
00:06:15
¿vale?
00:06:16
entonces para Java
00:06:23
¿qué significa
00:06:25
cuando él no ve una llave
00:06:26
aquí? cuando él
00:06:29
ve un else o ve un if
00:06:31
y no ve que automáticamente después
00:06:32
haya una llave, no ve, dice
00:06:35
ah vale, entonces interpreto
00:06:36
que la única
00:06:39
sentencia que hay que hacer
00:06:41
es la que viene después
00:06:42
interpreto que la única que hay
00:06:44
dentro de mi rama
00:06:49
interpreto que es la única que hay
00:06:50
es la que viene después
00:06:53
y las que haya continuación
00:06:54
son ya
00:06:56
de fuera de la sentencia
00:06:58
es decir, imaginaos que uno está
00:07:00
haciendo un estilo
00:07:05
de código fatal
00:07:07
y esta sentencia la ha puesto así
00:07:08
¿vale?
00:07:11
entonces uno podría pensar
00:07:17
viendo este código, podría pensar
00:07:19
que la rama del sí
00:07:21
tiene todo esto
00:07:23
esto es lo que se hace
00:07:26
si me da true la condición
00:07:28
y uno viendo esto así a lo tonto
00:07:31
podría pensar entonces
00:07:33
que la rama del no
00:07:35
tiene todo esto
00:07:36
Ya, pero está deduciendo eso por las tabulaciones y espacios
00:07:40
Cuando eso no pinta nada
00:07:46
No, es mentira
00:07:47
En este programa, la rama del no o la del else
00:07:49
Solo, solo tiene esto
00:07:53
Y esta ya se hace después
00:07:56
¿Por qué?
00:08:00
Porque no hay una llave aquí
00:08:01
Entonces, desde el momento en que la máquina virtual
00:08:02
el compilador ve que aquí
00:08:06
no se abre una llave
00:08:08
él deduce que entonces
00:08:10
la única sentencia que tenemos dentro
00:08:12
es esta
00:08:14
y esta ya
00:08:15
se sobreentiende que es una sentencia que ya está fuera
00:08:18
del ifelse, esta ya está fuera
00:08:20
con lo cual este programa
00:08:22
me da igual que esto esté tabulado aquí
00:08:24
que esté aquí, me da lo mismo
00:08:26
es que significa lo mismo, significa igual
00:08:28
las tabulaciones de los espacios no pintan nada
00:08:30
son las llaves las que marcan
00:08:33
entonces, aquí no hay llave
00:08:34
entonces, sobreentiendo
00:08:36
que solamente esta ascendencia
00:08:38
es la que hay
00:08:40
dentro del else, y lo que venga después
00:08:42
lo que venga después
00:08:45
ya está fuera, ya está fuera
00:08:46
del if, vale, si este es
00:08:48
mi
00:08:52
si, no
00:08:53
sigo por aquí
00:09:07
sigo por aquí
00:09:10
vale, como aquí no hay llave
00:09:11
esto es lo único que va aquí
00:09:14
lo único
00:09:16
porque aquí no hay llave
00:09:17
luego solo la siguiente sentencia
00:09:19
y la que haya después
00:09:20
todo lo que haya después
00:09:22
ya es de fuera
00:09:23
ya es de fuera y ya va aquí
00:09:25
de fuera
00:09:27
entonces este programa
00:09:28
funcionaría perfectamente
00:09:36
hace lo que tiene que hacer
00:09:38
pero está escrito muy feo
00:09:39
está escrito como para confundir
00:09:41
porque uno lo ve así
00:09:42
y parece que
00:09:44
es que esto es dentro del ELSE
00:09:46
no es dentro del ELSE
00:09:48
es que no lo va a hacer dentro del ELSE
00:09:49
en ningún caso
00:09:50
vale
00:09:51
entonces
00:09:53
esta es una mejor manera
00:09:54
de escribir este código
00:09:57
aunque haga lo mismo, hace lo mismo
00:09:59
es una mejor manera, porque aquí se ve más claro
00:10:01
a la vista
00:10:04
vale, aquí si yo quito las llaves
00:10:04
la lío
00:10:10
vale, yo voy a quitarlas
00:10:11
aquí la lío porque son
00:10:14
más de una sentencia
00:10:15
yo las quito
00:10:16
y efectivamente aquí me sale una cosa roja
00:10:18
Porque aquí hay muchas antes del else
00:10:21
Hay un montón
00:10:25
Hay un montón
00:10:26
Entonces, no
00:10:29
Esto tiene que estar entre llaves
00:10:31
¿Vale? Luego entonces
00:10:34
Primera cosa
00:10:41
Si solamente hay una sentencia
00:10:42
Tanto en la rama del sí
00:10:46
Como en la rama del no
00:10:47
Podemos quitar las llaves
00:10:49
Porque el sentido del programa es idéntico
00:10:52
Es lo mismo
00:10:56
Se sobreentiende que solo la única sentencia que sigue al if o al else es la que cuenta
00:10:56
Vale, primera cosa
00:11:05
Segunda cuestión de sintaxis, de código
00:11:08
La rama del no es opcional
00:11:16
¿La puedo poner o puedo no ponerla?
00:11:22
es decir, existe una variante en la cual yo solo hago algo
00:11:26
si se cumple la condición y si no se cumple no hago nada
00:11:31
por ejemplo, vamos a poner otro ejemplo chorra
00:11:34
por ejemplo, vamos a hacer un programa y así ya aprovechamos
00:11:38
para esto que os digo, de incorporar alguna de las pequeñas
00:12:09
funcionalidades que tienen los datos string, vamos a hacer un programa
00:12:11
que solicite tu nombre
00:12:17
Y te salude por tu nombre
00:12:20
¿Vale?
00:12:24
Pero si
00:12:34
Te salude por tu nombre
00:12:35
Solo
00:12:40
Si tu nombre
00:12:41
Tiene menos de
00:12:43
Diez caracteres
00:12:47
Si tu nombre es demasiado largo
00:12:49
No te saluda
00:12:52
¿Vale?
00:12:53
Este programa, esta aplicación
00:12:54
Solo concibe saludar
00:12:56
si tu nombre tiene menos de 10 caracteres
00:12:58
si no, te ignora
00:13:01
no es válido por lo que sea tu nombre
00:13:02
o ya está, te ignora
00:13:04
vale
00:13:05
bueno, pues vamos a aprovechar esto
00:13:07
para incorporar alguna de las
00:13:10
poquitas cosas que puede hacer string
00:13:13
que podemos nosotros ahora entender
00:13:15
vale
00:13:16
pero bueno, están recogidas en el otro fichero
00:13:19
que en el aula virtual
00:13:20
pues venga, datos del programa
00:13:21
nuestro nombre
00:13:24
un nombre es una cadena de caracteres
00:13:25
Lo tenemos que guardar en un dato stream
00:13:28
Pues venga, mi nombre
00:13:30
Como vamos a leer del teclado
00:13:32
El escáner lo necesitamos
00:13:35
Vale, pues entonces
00:13:38
Leer el nombre
00:13:55
Tenemos que leerlo sí o sí
00:13:56
Ahora otra cosa es
00:13:58
Que puede que saludemos
00:13:59
O que no hagamos nada
00:14:01
Depende de una condición
00:14:03
El nombre hay que leerlo sí o sí
00:14:04
Pues venga, vamos a aprovechar
00:14:06
Y lo leemos aquí a la vez que lo declaramos
00:14:08
Vale
00:14:11
Pues vamos a incorporar.
00:14:15
Nosotros ya sabemos leer números, tanto enteros como decimales,
00:14:18
y guardarlos en las variables correspondientes,
00:14:24
con nextIn, nextDouble, nextFloat, si era Float.
00:14:26
También sabemos leer un boolean, si escribimos true o false,
00:14:30
con nextBoolean se guarda en el boolean correspondiente,
00:14:33
eso lo hemos hecho.
00:14:35
Lo que no hemos hecho es leer una cadena entera de texto
00:14:36
y guardarla en una variable string.
00:14:40
Bueno, pues también hay un método para eso
00:14:41
¿Qué es esto?
00:14:45
En lugar de escribir next int, next double, next boolean
00:14:46
Pues next line
00:14:51
Vamos a poner primero el aviso de introduzca nombre
00:14:52
Claro, para que
00:15:00
Introduzca su nombre
00:15:01
Vale, pues ya está
00:15:06
Esto no tiene ninguna dificultad
00:15:13
Next line
00:15:15
Se queda ahí esperando que tú metas pipipipipipipi texto
00:15:16
Cuando ya la has dado al enter
00:15:19
Coge ese texto
00:15:22
Esa sucesión de caracteres
00:15:23
Tenga lo que tenga
00:15:24
Y lo guarda en stream
00:15:25
Vale, muy bien
00:15:26
Ahora
00:15:27
Vale, ahora ya
00:15:30
Si que el programa
00:15:36
Nos exige
00:15:38
Incorporar una sentencia de decisión
00:15:39
Porque el programa que hace
00:15:41
El programa me va a saludar
00:15:42
Pero
00:15:44
Hola
00:15:46
Nombre
00:15:47
En principio esto es saludarme
00:15:50
mostraros la nombre, pero ¿me va a saludar en cualquier caso?
00:15:52
no, solo me va a saludar
00:15:56
si se da una condición, solo
00:15:58
si no se da no me saluda, entonces necesitamos
00:16:00
una sentencia de decisión que me permita hacer
00:16:04
cosas diferentes en función de si pasa una cosa
00:16:07
o no pasa, la necesito, no hay otra
00:16:10
¿vale? entonces si se da una cosa me saludará
00:16:12
y si no se da pues no hace nada
00:16:16
vamos a ver qué es eso de no hacer nada
00:16:19
vale, pues tendremos que poner una sentencia de decisión
00:16:21
entonces ahora aquí
00:16:23
si se da la condición
00:16:25
que tendré que ver cuál es
00:16:28
me saludas
00:16:29
y aquí puedo poner la llave, puedo no ponerla
00:16:31
da exactamente igual
00:16:33
porque es sólo una sentencia
00:16:35
saludarme
00:16:37
y si no se da esa condición
00:16:38
no haces nada
00:16:42
con lo cual, ¿qué hago?
00:16:43
¿dejo yo aquí un bloque vacío sin nada?
00:16:46
pues esto es
00:16:49
Feo, lo puedo dejar, no pasa nada, pero es un poco feo. Entonces, se contempla que una sentencia de decisión de tipo if else, el else no esté y no pasa nada. ¿Qué significa si no está? Que en el caso de que la condición no se cumpla, no se hace nada. Ya está. Eso es lo que significa.
00:16:50
es decir, dejarlo así
00:17:10
y dejarlo
00:17:13
así
00:17:15
es lo mismo
00:17:19
pero así es más feo
00:17:21
así es más feo
00:17:24
¿vale?
00:17:26
entonces si yo veo que en la rama del no no hago nada
00:17:27
lo natural es que la quite
00:17:30
¿vale?
00:17:31
entonces, ahora aquí
00:17:42
¿qué me faltaría?
00:17:43
poner la condición de
00:17:45
que el nombre
00:17:47
tenga más de 10 caracteres
00:17:49
pues ahí
00:17:51
ya la he liado, ¿cómo saco yo
00:17:53
el número de caracteres del nombre? yo que sé
00:17:55
el nombre es una cadena de texto que me han
00:17:57
metido, ¿cómo lo hago?
00:17:59
bueno, pues ahí
00:18:02
es donde viene que las variables
00:18:03
string, por ser variables
00:18:05
especiales, variables objeto
00:18:07
pueden hacer cosas
00:18:09
que las variables primitivas
00:18:11
como los números
00:18:13
los boolean, los char
00:18:14
no pueden
00:18:17
aquí es donde viene eso
00:18:17
¿vale? entonces vamos a ir incorporando
00:18:20
algunas de esas pequeñas cositas
00:18:31
para usarlas sin entender todavía
00:18:33
que es una variable objeto
00:18:34
vale, pues a ver
00:18:36
nombre
00:18:38
es una variable
00:18:43
pero resulta que es una variable
00:18:45
de las que yo estoy llamando
00:18:49
objeto
00:18:50
a las otras las llamo primitivas
00:18:51
variable objeto
00:18:57
¿Por qué los objetos son diferentes a las primitivas?
00:18:58
Ahora mismo nos es difícil de entender, no podemos, no sabemos lo que es un objeto.
00:19:01
Pero bueno, sirva como indicación que la diferencia está en la forma en la que se almacena.
00:19:06
¿Vale? Una variable primitiva, como un número n, directamente se crea un espacio en memoria para ella.
00:19:11
72, 14, 15.
00:19:18
Sin embargo, una variable objeto como esta de aquí, string s, no se almacena directamente como un espacio en memoria con el dato, no se almacena así, se almacena de otra manera, ¿vale?
00:19:21
Se almacena como una variable que tiene una dirección de memoria y esa dirección ya me dice, me está diciendo esa dirección donde está el dato.
00:19:37
pero bueno, eso lo digo
00:19:48
pues porque es la diferencia entre objeto
00:19:50
y variable primitiva
00:19:53
para
00:19:54
ponerlo en contexto
00:19:55
pero esto ahora mismo nos importa poco
00:19:58
¿vale? nos importa poco
00:20:00
lo que nos importa es, ahora mismo
00:20:01
que las variables objeto
00:20:08
por el hecho de ser objetos
00:20:09
aunque no entendamos muy bien lo que significa ser objetos
00:20:12
tienen una posibilidad
00:20:14
que no tienen las variables primitivas
00:20:16
que es dar órdenes
00:20:19
para que pasen cosas
00:20:21
la variable S
00:20:22
esta de aquí, aparte de tener el dato
00:20:24
que es el nombre que sea
00:20:27
aparte de tener el dato
00:20:28
tiene la posibilidad
00:20:31
de dar órdenes para que pasen cosas
00:20:33
los objetos pueden hacerlo
00:20:35
las variables primitivas
00:20:39
como los números y decimales no pueden
00:20:41
los objetos pueden
00:20:42
y la variable S, aparte de guardar el dato
00:20:44
puede dar órdenes
00:20:47
para que pasen cosas
00:20:48
¿Y cómo se dan órdenes para que pasen cosas?
00:20:49
Pues uno escribe la variable, un puntito
00:20:53
Y la orden que sea dentro de las posibilidades
00:20:56
Claro, dentro de las posibilidades
00:21:00
Pues vamos a escribirlo, a ver
00:21:02
Fijaos, si yo escribo aquí, lo voy a poner aquí abajo
00:21:05
Si yo escribo aquí nombre y pongo punto
00:21:12
Fijaos todo lo que se me despliega
00:21:16
un montón de órdenes
00:21:19
que puede dar ese objeto
00:21:21
esto es lo que se llama
00:21:24
métodos, ¿vale? que ya entenderemos
00:21:26
también lo que es un método más adelante
00:21:27
y dos o tres de ellos
00:21:29
dos o tres, los tenemos que usar
00:21:31
desde ya porque son básicos
00:21:34
para hacer cosas con cadenas de texto
00:21:35
son básicos
00:21:38
¿vale?
00:21:40
entonces
00:21:42
hay uno en particular
00:21:42
que es
00:21:46
este que pone aquí length de aquí
00:21:47
este length
00:21:50
que qué es lo que hace esta orden
00:21:52
o este método, qué es lo que hace
00:21:54
cuando está escrito después del punto
00:21:56
lo que hace es ponerse
00:21:58
a contar los caracteres
00:22:00
de la cadena, ponerse a contarlos
00:22:02
y decirte cuánto les han salido
00:22:04
eso es lo que hace esta orden
00:22:06
si tú invocas esta orden
00:22:08
length
00:22:10
se pone a contar los caracteres del
00:22:11
dato, 1, 2, 3, 4
00:22:14
y te dice 7, me han salido 7, eso hace.
00:22:16
¿Vale? Es un ejemplo de orden que puede invocar este objeto.
00:22:21
Fijaos que si yo en lugar de una variable string hago esto mismo con una variable n,
00:22:26
la variable primitiva n no tiene órdenes que invocar, no puede, porque no es un objeto.
00:22:32
Solo los objetos pueden invocarlas.
00:22:41
De hecho, scan también es un objeto
00:22:43
Por eso a través del puntito ha podido invocar esta orden
00:22:47
Que es, oye tú, teclado, quédate ahí a la espera de que te introduzcan un dato
00:22:51
Y cuando te lo den, dámelo
00:22:58
Es la misma idea
00:22:59
Bueno, pues entonces, esto que he dicho yo del length es justo lo que queremos
00:23:02
Me dicen, oye, vamos a contar cuántos caracteres tiene el nombre que me has dado
00:23:09
Vamos a contarlos, porque si fueran menos de 10, entonces te saludo, si no, no.
00:23:13
Entonces vamos a contarlos, pues anda, qué bien, porque nombre, por ser un objeto, puede dar esa orden, length,
00:23:20
y esto que te saca, esto después de contarlo, te saca, te devuelve, te entrega el número de caracteres que tiene ese nombre.
00:23:31
Te los entrega, te los devuelve, te los da, te dice, me han salido 25.
00:23:41
vale, pues, los que me han salido son menores de 10,
00:23:46
y ya tengo mi condición ahí estupendamente hecha,
00:23:53
vale, si la cuenta de los caracteres que tiene este objeto cadena nombre,
00:23:57
esta cuenta que me ha salido, porque esta orden led los ha contado y me los ha devuelto,
00:24:06
es menor que 10, pues me saludas, y si no, no,
00:24:12
Bueno, pues esta orden, la orden LENZ, que en lenguaje Java se llama método, este método, el método LENZ, ya es otra de esas cosas que ya nos aprendemos, la tenemos en la cabeza de memoria.
00:24:18
Cuando yo necesite saber la cantidad de caracteres de una cadena, lo puedo obtener con LENZ, ya nos lo aprendemos de memoria y ya está.
00:24:33
vale, pues este programa habría terminado
00:24:42
me va a saludar
00:24:58
solo si se cumple la condición
00:25:00
si no, no
00:25:02
y la rama del else como es opcional
00:25:02
la he quitado porque en el caso
00:25:06
de que no, no quiero que haga nada
00:25:08
entonces si ejecutamos
00:25:09
esto
00:25:12
introduzca su nombre
00:25:13
me saluda
00:25:15
pero si lo vuelvo a ejecutar
00:25:17
introduzco un nombre muy largo
00:25:20
porque tengo un nombre muy largo
00:25:22
el programa termina sin haber hecho nada
00:25:23
¿vale?
00:25:26
no me saluda
00:25:30
luego siguiente cosa que ya incorporamos
00:25:31
la rama del else
00:25:38
se puede quitar si está vacía
00:25:40
¿se puede quitar
00:25:42
la rama del if si está vacía?
00:25:49
no, imaginaos por ejemplo
00:25:50
que queremos cambiar el código
00:25:54
y decir
00:25:56
imaginaos que hemos puesto
00:25:58
aquí la condición
00:26:00
en lugar de menor que 10
00:26:01
mayor o igual que 10
00:26:03
en este caso no queremos
00:26:05
que nos salude
00:26:07
y en el caso de que no
00:26:08
sea mayor o igual que 10
00:26:11
en este caso sí
00:26:13
¿vale?
00:26:14
es decir, repito
00:26:22
imaginaos que yo he puesto la condición
00:26:23
así, porque me ha dado la gana ponerla así
00:26:27
me ha dado la gana ponerla así
00:26:28
pues para que el programa
00:26:30
siga haciendo lo que tiene que hacer
00:26:32
ahora es en la rama del sí
00:26:34
en la que no puede hacer nada
00:26:37
porque si es mayor o igual que 10 no hagas nada
00:26:38
y es en la rama del no
00:26:39
en la de menor que 10 en la que me saludaría
00:26:42
¿verdad?
00:26:44
entonces si yo he puesto la condición al revés
00:26:46
esta es la que se queda vacía
00:26:48
y esta es la que tiene el contenido
00:26:51
¿verdad? si es que la he puesto al revés
00:26:53
vale, entonces yo digo
00:26:55
uy, esta se ha quedado vacía
00:26:59
¿la puedo quitar igual que antes
00:27:02
quité el else cuando se quitó vacío?
00:27:04
no
00:27:06
la del if no se puede quitar
00:27:06
si está vacía, pues la dejas vacía
00:27:09
¿por qué no se puede quitar?
00:27:10
hombre, pues porque es la que tiene la condición
00:27:13
si yo la quito
00:27:15
¿dónde pongo la condición? en el se, no
00:27:17
esa es la sintaxis, no me lo permite
00:27:18
entonces la rama del if, aunque en el caso
00:27:20
del si
00:27:23
aunque yo tenga una
00:27:24
que en la del si
00:27:27
sea en la que no haga nada
00:27:29
y en la del no sea en la que
00:27:31
haga cosas, como es este
00:27:33
caso, en la del si no hace nada
00:27:35
y en la del no, no hace cosas
00:27:37
o sea, este diagrama es esto
00:27:39
aunque lo tenga
00:27:40
el if no lo puedo quitar
00:27:42
se queda ahí vacío, no hace nada
00:27:44
pero claro, efectivamente
00:27:46
este programa
00:27:53
con un if vacío
00:27:55
aunque funciona y hace
00:27:56
lo mismo que hacía el otro
00:27:58
hace lo mismo, lo que pasa es que al haber cambiado la condición
00:28:00
he cambiado una rama por la otra
00:28:03
aunque funciona y hace lo mismo
00:28:04
introduzca su nombre
00:28:07
aquí me va a saludar, muy bien
00:28:08
Pero si pongo uno muy largo
00:28:10
Pues aquí no me va a saludar
00:28:12
No me saluda y terminó
00:28:14
Aunque hace lo mismo
00:28:16
Este código sería muy feo a la vista
00:28:17
Tú ves esto y dices
00:28:20
Jolín, un if sin nada adentro, que horrible
00:28:22
Porque un if
00:28:24
Sin el else colgando
00:28:26
Es bonito, está bien, lo ves y dices
00:28:28
Pero un if sin nada adentro
00:28:30
Y el else con cosas
00:28:32
Esto a la vista es bastante feo
00:28:34
Pero claro, hay una forma muy fácil de arreglarlo
00:28:36
¿Cómo lo arreglamos para que sea el if el que tenga las cosas y el else el vacío?
00:28:39
Poniendo la condición contraria, ya está.
00:28:45
Si yo identifico que me ha quedado un if vacío y un else con cosas, ¡qué feo!
00:28:50
Pues hago el negado de la condición.
00:28:55
El negado, la condición justo opuesta, la negada.
00:28:58
Y si yo niego esta condición, entonces esto pasa aquí.
00:29:02
y el que se queda vacío es el otro
00:29:06
¿verdad? si pongo la condición
00:29:09
justo opuesta
00:29:11
¿cómo puedo negar
00:29:12
fácilmente una condición?
00:29:15
con el operador no delante
00:29:17
es decir
00:29:19
si yo pongo esto
00:29:20
¡ala! ya negué
00:29:22
mi condición
00:29:25
la negué, voy a poner entre paréntesis
00:29:26
claro, para que se vea que estoy negando
00:29:30
todo eso, ¿veis?
00:29:31
ese es el operador que niega una condición
00:29:33
negada
00:29:35
si no se cumple toda esta
00:29:37
negada, pues entonces si yo la niego
00:29:40
automáticamente
00:29:41
esto pasa arriba
00:29:43
y el else es el que se queda vacío
00:29:44
si yo pongo la condición
00:29:48
negada, justo la opuesta
00:29:50
y yo siempre puedo negar una condición
00:29:51
poniendo el no delante
00:29:54
poniendo el no, si yo la niego
00:29:55
lo del else pasa al if
00:29:58
y lo del if pasa al else
00:29:59
entonces ahora ya esto me queda más bonito
00:30:01
y el else ya lo podría quitar
00:30:03
este else ya
00:30:05
se podría eliminar
00:30:07
¿vale? y ya esto me queda un código
00:30:09
más bonito
00:30:11
ahora ya sí
00:30:12
a ver, otra cosa es que
00:30:17
luego vea yo la condición como me queda
00:30:22
y mire a ver, oye voy a reescribir la manchula
00:30:24
porque me ha quedado muy fea, hombre pues decir
00:30:26
no es el nombre
00:30:28
mayor o igual que 10
00:30:30
es igual que decir y me va a quedar
00:30:32
más bonito, ¿verdad?
00:30:34
esto es lo mismo
00:30:36
que decir lo que hemos escrito antes
00:30:37
nombre.le
00:30:40
menor que 10
00:30:43
es decir, no
00:30:46
mayor o igual que 10
00:30:48
es lo mismo que decir menor que 10
00:30:50
pues hombre
00:30:52
esta condición, aun siendo
00:30:54
idéntica a esta
00:30:56
aun siendo idéntica
00:30:57
es más fea que esta
00:30:59
es más fea, aun siendo idéntica
00:31:01
siendo lo mismo
00:31:03
no eres mayor de 23 años
00:31:03
eres menor de 23
00:31:07
es lo mismo
00:31:10
significa lo mismo
00:31:11
pondríamos esta
00:31:13
pero a ver, lo que yo quería decir ahora es
00:31:16
que si tú tienes una condición, la que sea
00:31:18
y la niegas
00:31:20
y la niegas, pues lógicamente
00:31:22
lo del ELSE
00:31:25
se convierte en el IF y lo del IF pasa al ELSE
00:31:26
entonces siempre puedes
00:31:29
intercambiar la rama del sí
00:31:31
con la del no, negando la condición
00:31:33
y así la dejas
00:31:35
lo dejas más bonito, si es que lo quieres
00:31:37
dejar más bonito, porque el leaf se había quedado vacío
00:31:39
como fuera
00:31:41
vale
00:31:42
pues vamos a ver que enunciados
00:31:47
tenemos por aquí
00:31:53
para
00:31:54
que podáis arrancar a hacer antes
00:31:58
porque hay muchas modificaciones
00:32:01
y un montón de casuísticas y un montón de cosas
00:32:03
con la incidencia de decisión que hay que seguir viendo
00:32:05
Pero bueno, entonces seguir con el rollo y vamos a ver qué cosa hay por aquí para que
00:32:06
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 5 de octubre de 2026 - 12:39
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 32′ 11″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 599.58 MBytes