1 00:00:00,560 --> 00:00:09,080 Hola, muy buenas. En este videotutorial hablaremos de la estructura condicional IF y de algunos operadores que utilizaremos con ella. 2 00:00:09,599 --> 00:00:21,280 Ya vimos esta estructura en Scratch, donde teníamos este bloque de código y donde, si os acordáis, en esta parte de aquí poníamos la condición 3 00:00:21,280 --> 00:00:27,879 y en esta sección de aquí el conjunto de instrucciones que queremos que se hagan si se cumple la condición que hemos puesto aquí arriba. 4 00:00:27,879 --> 00:00:46,299 Eso en Java se escribe de esta manera, con la palabra reservada if y entre paréntesis pondremos la condición y luego entre llaves, dentro de este bloque de código, pondremos el conjunto de acciones que queremos que se haga si se cumple la condición. 5 00:00:46,299 --> 00:00:54,979 De igual manera, en Scratch vimos esta otra estructura condicional, la estructura sí, sí, no. 6 00:00:55,759 --> 00:01:00,520 Si se cumple la condición, se haría lo que pongamos dentro de esta zona. 7 00:01:01,079 --> 00:01:06,079 Si no se cumple la condición, se haría en cambio lo que aparece en esta zona. 8 00:01:07,280 --> 00:01:09,159 Bueno, ¿en Java cómo se hace eso? 9 00:01:09,159 --> 00:01:19,439 Pues con la estructura if, entre paréntesis la condición, en tres llaves pondríamos el conjunto de acciones que queremos que se hagan si se cumple la condición. 10 00:01:20,400 --> 00:01:28,379 Y si no, para eso utilizamos la palabra reservada else, se haría lo que pongamos dentro de este bloque de código. 11 00:01:28,379 --> 00:01:41,700 Vamos a ver algún ejemplo. Aquí tenemos que si la variable número vale 3, entonces sumamos 1 a dicha variable. ¿Cómo se haría eso en Java? 12 00:01:42,260 --> 00:01:53,079 Palabra reservada if, entre paréntesis la condición, número igual a 3, y entre llaves la acción. Sumamos 1 a la variable número. 13 00:01:53,079 --> 00:02:00,819 Curiosidades, el operador de comparación es el operador igual igual 14 00:02:00,819 --> 00:02:05,560 Si pones solo un igual, esto es fuente de errores 15 00:02:05,560 --> 00:02:10,939 El operador igual a secas con uno solo es un operador de asignación 16 00:02:10,939 --> 00:02:18,300 Es decir, a la variable que tenemos a la izquierda le asigna, le pone el valor de lo que tengamos a la derecha 17 00:02:18,300 --> 00:02:20,620 Pero no es un operador de comparación 18 00:02:20,620 --> 00:02:23,580 El operador de comparación en Java son dos iguales 19 00:02:23,580 --> 00:02:24,379 Que no se nos olvide 20 00:02:24,379 --> 00:02:28,120 Por otra parte, el operador más más 21 00:02:28,120 --> 00:02:32,060 Es un operador que suma uno a la variable numérica 22 00:02:32,060 --> 00:02:33,840 Que tengamos a la izquierda 23 00:02:33,840 --> 00:02:36,219 El otro día, o en otro vídeo 24 00:02:36,219 --> 00:02:38,680 Vimos el operador más igual 25 00:02:38,680 --> 00:02:40,659 Bueno, esta es otra posibilidad 26 00:02:40,659 --> 00:02:46,120 Bueno, otro ejemplo de la estructura sí-sino 27 00:02:46,120 --> 00:03:00,419 Pues aquí tendríamos que si la variable número es menor que 0, fijamos el valor de la variable número a 0 y si no, lo que haremos es sumar 1 a la variable número. 28 00:03:00,740 --> 00:03:05,819 Bueno, ¿cómo se pone esto en Java? Con la palabra reservada if entre paréntesis número menor que 0. 29 00:03:05,819 --> 00:03:17,419 Si el número es menor que cero, en este bloque de código, pondremos que el número es igual a cero, y si no, sumaremos uno a la variable número. 30 00:03:19,240 --> 00:03:29,020 Bueno, he puesto ejemplos sencillitos en los que solo aparece una instrucción dentro de los bloques de código, pero pueden aparecer más, una detrás de otra, en distintas líneas. 31 00:03:29,020 --> 00:03:40,020 Hay en Java una sección a la hora de poner estas llaves que dice que si solo se pone una sentencia, una acción, no es necesario poner las llaves 32 00:03:40,020 --> 00:03:46,379 Nosotros, por claridad, por seguir siempre la misma norma, siempre la vamos a poner 33 00:03:46,379 --> 00:03:50,759 Bueno, vamos a ver algunos operadores que yo puedo utilizar para hacer comparaciones 34 00:03:50,759 --> 00:03:54,379 En la sección de operadores he puesto alguno 35 00:03:54,960 --> 00:03:58,879 Uno ya lo hemos visto, el operador relacional de comparación 36 00:03:58,879 --> 00:04:20,060 Con dos iguales. Este otro operador es el operador distinto de. Y luego vamos a tener operadores lógicos como es el de negación, el de el and lógico, el del or lógico y estos dos que ya hemos visto de menor y de mayor. 37 00:04:20,060 --> 00:04:41,360 Vamos a verlo con algunos ejemplos. Aquí tenemos un programita que me abre una ventana de 400x400 píxeles. Dentro de la función draw nos hemos declarado una variable. Por cierto, como esa variable está dentro de las llaves, diremos que es una variable local. 38 00:04:41,360 --> 00:04:45,740 Y solo vamos a poder utilizarla dentro de estas llaves 39 00:04:45,740 --> 00:04:51,180 También dentro de estas otras, vemos que aquí hay una anidación de bloques de código 40 00:04:51,180 --> 00:04:58,300 Un bloque de código, este de aquí, está entre esta llave y esta, está dentro de otro bloque de código 41 00:04:58,300 --> 00:04:59,839 Eso es muy habitual en programación 42 00:04:59,839 --> 00:05:07,100 Bueno, pues esta variable la podremos utilizar dentro de este bloque de código 43 00:05:07,100 --> 00:05:09,920 Es decir, también lo vamos a poder hacer dentro de este 44 00:05:09,920 --> 00:05:28,959 Bueno, vamos a ver qué nos dice este programa. Este programa nos dice que si la variable número es mayor que 3, me dibuja un círculo. Como número, aquí le hemos puesto un valor 5, nos tendría que dibujar en este caso un círculo. Vamos a probarlo. 45 00:05:28,959 --> 00:05:31,319 Ahí lo tenemos 46 00:05:31,319 --> 00:05:35,300 Vamos a cambiar el valor y vamos a poner por ejemplo un valor de 1 47 00:05:35,300 --> 00:05:40,839 Ahora, como el número vale 1, pues no debería dibujarse el círculo 48 00:05:40,839 --> 00:05:44,920 ¿Y qué pasa si pongo el valor 3? 49 00:05:45,639 --> 00:05:50,600 Pues el 3 no es mayor que el 3, tampoco se debería dibujar el círculo 50 00:05:50,600 --> 00:05:57,800 Hay otro operador en Java que es el operador mayor o igual que 3 51 00:05:57,800 --> 00:06:03,579 Si yo pongo mayor o igual que 3, entonces sí se me tendría que dibujar el círculo 52 00:06:03,579 --> 00:06:10,420 Si pongo un número, por supuesto, mayor, un 5, por ejemplo, también se me va a pintar 53 00:06:10,420 --> 00:06:17,259 Y si pongo un número ya menor que 3, el 2, por ejemplo, en este caso no se pinta 54 00:06:17,259 --> 00:06:24,199 Bueno, lo mismo que tenemos para el operador mayor, tenemos para el operador menor 55 00:06:24,199 --> 00:06:27,560 O incluso el operador menor o igual que 3 56 00:06:27,560 --> 00:06:35,379 Como hemos dicho, el operador de igualdad es los dos iguales 57 00:06:35,379 --> 00:06:38,819 Con esta expresión no se me debería pintar el círculo, ¿no? 58 00:06:38,819 --> 00:06:41,300 Porque el número vale 2 y no es igual a 3 59 00:06:41,300 --> 00:06:43,259 Ahí lo tenemos 60 00:06:43,259 --> 00:06:47,199 Sin embargo, si yo pongo que mi variable sea 3 61 00:06:47,199 --> 00:06:51,100 En este caso, sí que se pinta el círculo 62 00:06:51,100 --> 00:06:55,699 También tenemos el operador distinto que 63 00:06:55,699 --> 00:07:10,439 En este caso no se me pintará, ¿no? Porque el número vale 3, el número no es distinto que 3, así que no se me pinta. Si ponemos cualquier otro número, por ejemplo 0, sí se va a pintar, porque es distinto de 3. 64 00:07:10,439 --> 00:07:13,740 Bueno, también tenemos el operador negación 65 00:07:13,740 --> 00:07:16,699 El operador negación iría a la izquierda 66 00:07:16,699 --> 00:07:20,600 Y esto lo que me dice es que la expresión que tengo a la derecha 67 00:07:20,600 --> 00:07:24,199 De ese operador, el de negación 68 00:07:24,199 --> 00:07:27,180 Pues la transforma y la pone al revés 69 00:07:27,180 --> 00:07:30,379 Fijaros en una cosa, el operador de negación 70 00:07:30,379 --> 00:07:35,860 Lo he tenido que poner junto con unos paréntesis 71 00:07:35,860 --> 00:07:38,500 ¿Por qué? Porque número es una variable de tipo entero 72 00:07:38,500 --> 00:07:46,019 Y tal como lo tengo puesto aquí, sin esos paréntesis, afectaría solo la variable número 73 00:07:46,019 --> 00:07:49,500 Y el compilador me da un error, dice, ¿cómo a un número le vas a negar? 74 00:07:49,560 --> 00:07:52,060 No puedes negar un número, puedes negar una expresión 75 00:07:52,060 --> 00:07:55,360 Cualquier expresión de comparación es una expresión de verdadero o falso 76 00:07:55,360 --> 00:08:00,199 Eso sí lo puedes negar, eso es un operador lógico que funciona con verdadero o falso 77 00:08:00,199 --> 00:08:05,060 Si una cosa es verdadera y tú le pones un operador de negación, será falsa y al revés 78 00:08:05,060 --> 00:08:09,379 Entonces, para que afecte a toda la expresión, lo tenemos que poner entre paréntesis. 79 00:08:09,800 --> 00:08:17,500 Bueno, en este caso, como el número vale 3, la expresión de dentro sería falsa, porque 3 no es igual a 0, 80 00:08:18,060 --> 00:08:23,100 pero como lo estamos negando, todo ello será verdadero, con lo cual se me pintará el círculo. 81 00:08:23,660 --> 00:08:24,199 Vamos a verlo. 82 00:08:25,420 --> 00:08:30,300 De igual manera, yo puedo poner aquí un 3, la expresión de dentro será verdadera, 83 00:08:30,300 --> 00:08:33,799 pero como lo estoy negando, será falso, luego no se pintará el círculo. 84 00:08:33,799 --> 00:09:01,600 Bueno, otro tipo de operadores son los operadores lógicos de AND, U, OR. Veamos un ejemplo. Si queremos dibujar el círculo en el caso de que la variable número sea mayor que 3 y a la vez menor que 5, tenemos que utilizar el operador lógico AND, que como vemos son dos ampersand juntos. 85 00:09:01,600 --> 00:09:05,820 Se deben cumplir obligatoriamente ambas condiciones 86 00:09:05,820 --> 00:09:08,299 La de la izquierda y la de la derecha 87 00:09:08,299 --> 00:09:12,620 En este caso, número no es mayor que 3 88 00:09:12,620 --> 00:09:15,179 Porque aquí, número vale 3, 3 no es mayor que 3 89 00:09:15,179 --> 00:09:17,960 Luego, como hay una que no se cumple 90 00:09:17,960 --> 00:09:22,720 No se va a cumplir la condición entera y no se va a pintar 91 00:09:22,720 --> 00:09:24,200 Ahí lo tenemos 92 00:09:24,200 --> 00:09:28,320 Sin embargo, si nosotros elegimos el número 4 93 00:09:28,320 --> 00:09:32,690 4 es mayor que 3, esta sí se cumple 94 00:09:32,690 --> 00:09:39,710 y 4 es menor que 5. También se cumple. Si se cumplen las dos, se dibujará el círculo. 95 00:09:40,309 --> 00:09:47,789 Si ponemos, por ejemplo, el número 9, como el número 9 no es menor que 5, no se va a cumplir esta condición 96 00:09:47,789 --> 00:09:51,669 y, por tanto, no se va a pintar el círculo. 97 00:09:52,889 --> 00:10:01,509 El operador lógico OR funciona de manera similar, pero en este caso, con que se cumpla una de las dos condiciones, 98 00:10:01,509 --> 00:10:08,110 se pintará el círculo. Por ejemplo, si yo pongo aquí un número 3, esta no se cumpliría, ¿no? 99 00:10:08,389 --> 00:10:15,570 Porque el número, el 3 no es mayor que el 3, ¿no? Sin embargo, esta sí, el 3 es menor que el 5. 100 00:10:15,690 --> 00:10:21,350 Como se cumple una de las dos, igual cual, entonces esto es verdadero y se cumple. 101 00:10:24,539 --> 00:10:31,779 Y hasta aquí un repaso a la estructura condicional IF, que va a ser una estructura muy importante en nuestros programas.