|
| 1 | +//01 OPERADORES Y ESTRUCTURAS DE CONTROL |
| 2 | + |
| 3 | +/* |
| 4 | +EJERCICIO: |
| 5 | + - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: |
| 6 | + Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... |
| 7 | + (Ten en cuenta que cada lenguaje puede poseer unos diferentes) |
| 8 | + - Utilizando las operaciones con operadores que tú quieras, crea ejemplos que representen todos los tipos de estructuras de control que existan en tu lenguaje: |
| 9 | + Condicionales, iterativas, excepciones... |
| 10 | + - Debes hacer print por consola del resultado de todos los ejemplos. |
| 11 | +
|
| 12 | + DIFICULTAD EXTRA (opcional): |
| 13 | + Crea un programa que imprima por consola todos los números comprendidos entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. |
| 14 | +
|
| 15 | + Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. |
| 16 | +*/ |
| 17 | + |
| 18 | +//- Tipos de operadores |
| 19 | +//Operadores de asignación |
| 20 | +let x = 10, y = 5; |
| 21 | +console.log('Operadores de asignación x =', x, 'y =', y); |
| 22 | +console.log("Asignación: x = y =", x = y); |
| 23 | +console.log('x =', x, 'y =', y); |
| 24 | +console.log("Asignación de suma: x += y =", x += y); |
| 25 | +console.log('x =', x, 'y =', y); |
| 26 | +console.log("Asignación de resta: x -= y =", x -= y); |
| 27 | +console.log('x =', x, 'y =', y); |
| 28 | +console.log("Asignación de multiplicación: x *= y =", x *= y); |
| 29 | +console.log('x =', x, 'y =', y); |
| 30 | +console.log("Asignación de división: x /= y =", x /= y); |
| 31 | +console.log('x =', x, 'y =', y); |
| 32 | +console.log("Asignación de resto: x %= y =", x %= y); |
| 33 | +console.log('x =', x, 'y =', y); |
| 34 | +console.log("Asignación de exponenciación: y **= x =", y **= x); |
| 35 | +console.log('x =', x, 'y =', y); |
| 36 | +x = 10, y = 5 |
| 37 | +console.log("Asignación de desplazamiento a la izquierda: x <<= 2 =", x <<= 2); |
| 38 | +console.log('x =', x); |
| 39 | +console.log("Asignación de desplazamiento a la derecha: x >>= 2 =", x >>= 2); |
| 40 | +console.log('x =', x); |
| 41 | +console.log("Asignación de desplazamiento a la derecha sin signo: x >>>= 2 =", x >>>= 2); |
| 42 | +console.log('x =', x); |
| 43 | +x = 9, y = 14 |
| 44 | +console.log("Asignación AND bit a bit: 9 &= 14 =", x &= y) |
| 45 | +console.log('x =', x); |
| 46 | +console.log("Asignación XOR bit a bit: x ^= 14 =", x ^= y); |
| 47 | +console.log('x =', x); |
| 48 | +console.log("Asignación OR bit a bit: x |= 14 =", x |= y); |
| 49 | +console.log('x =', x); |
| 50 | +console.log("Asignación AND lógico: x &&= 14 =", x &&= y); |
| 51 | +console.log('x =', x); |
| 52 | +console.log("Asignación OR lógico: x ||= 14 =", x ||= y); |
| 53 | +console.log('x =', x); |
| 54 | +console.log("Asignación de anulación lógica: x ??= 14 =", x ??= y); |
| 55 | +console.log('x =', x); |
| 56 | + |
| 57 | +//Operadores Aritméticos |
| 58 | +x = 10, y = 5; |
| 59 | +console.log('Operadores aritméticos: x =', x, 'y =', y); |
| 60 | +console.log("Suma:", x + y ); |
| 61 | +console.log("Resta:", x - y ); |
| 62 | +console.log("Multiplicación:", x * y ); |
| 63 | +console.log("División:", x / y ); |
| 64 | +console.log("Residuo:", x % y ); |
| 65 | +console.log("Exponenciación:", x ** y ); |
| 66 | +console.log("Incremento:", ++x ); |
| 67 | +console.log("Decremento:", --y ); |
| 68 | +console.log("Positivo unario:", +x ); |
| 69 | +console.log("Negativo unario:", -x ); |
| 70 | + |
| 71 | +//Operadores bit a bit |
| 72 | +x = 9, y = 14; |
| 73 | +console.log('Operadores bit a bit: x =', x, 'y =', y); |
| 74 | +console.log("AND a nivel de bits: x & y =", x & y) |
| 75 | +console.log("XOR a nivel de bits: x ^ 14 =", x ^ y); |
| 76 | +console.log("OR a nivel de bits:: x | 14 =", x | y); |
| 77 | +console.log("NOT a nivel de bits: ~ x =", ~ x); |
| 78 | +console.log("Desplazamiento a la izquierda: y << 2 =", y << 2); |
| 79 | +console.log("Desplazamiento a la derecha de propagación de signo: y >> 2 =", y >> 2); |
| 80 | +console.log("Desplazamiento a la derecha de relleno cero: x >>> 2 =", y >>> 2); |
| 81 | + |
| 82 | +//Operadores de comparación |
| 83 | +console.log('Operadores de comparación: x =', x, 'y =', y); |
| 84 | +console.log(x, '>', y, "'Mayor que': ", x > y); |
| 85 | +console.log(x, '<', y, "'Menor que': ", x < y); |
| 86 | +console.log(x, '>=', y, "'Mayor o igual que': ", x >= y); |
| 87 | +console.log(x, '<=', y, "'Menor o igual que': ", x <= y); |
| 88 | +console.log(x, '==', y, "'Igual': ", x == y); |
| 89 | +console.log(x, '===', y, "'Estrictamente igual': ", x === y); |
| 90 | +console.log(x, '!=', y, "'Distinto': ", x != y); |
| 91 | +console.log(x, '!==', y, "'Estrictamente distinto': ", x !== y); |
| 92 | + |
| 93 | +//Operandos lógicos |
| 94 | +console.log('Operandos lógicos: x =', x, 'y =', y); |
| 95 | +console.log("AND: x && y =", x && y); //Devuelve y si ambos operandos son true; de lo contrario, devuelve x. |
| 96 | +console.log("OR: x || y =", x || y); //Devuelve x si el operando x es true, devuelve y si el operando x es false; si ambos son falsos, devuelve y. |
| 97 | +console.log("NOT: !x =", !x); //Devuelve false si su operando es true; de lo contrario, devuelve true. |
| 98 | + |
| 99 | +//Operador de cadena |
| 100 | +let a = 'Operador', b = 'cadena'; |
| 101 | +console.log(a + ' de ' + b, 'a + b'); |
| 102 | + |
| 103 | +//Operador condicional (ternario) |
| 104 | +console.log('Operador condicional'); |
| 105 | +let age = 24; |
| 106 | +let estado = age >= 18 ? "adulto" : "menor"; |
| 107 | +console.log("condition ? val1 : val2 ¿Es adulto o menor?", estado); |
| 108 | + |
| 109 | +//Operador coma |
| 110 | +console.log('Operador coma'); |
| 111 | +var n = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| 112 | +var m = [x, x, x, x, x]; |
| 113 | + |
| 114 | +for (var i = 0, j = 9; i <= j; i++, j--) |
| 115 | + console.log("m[" + i + "][" + j + "]= " + i + j); |
| 116 | + |
| 117 | +//Operandores unarios |
| 118 | +console.log('Operadores unarios'); |
| 119 | +z = 10; //implicitamente crea window.z |
| 120 | +var h = 24; |
| 121 | +let myObj = { x: 10 }; |
| 122 | +let diaSem = ['lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sábado', 'domingo']; |
| 123 | +let theDay = new Date(2025, 1, 28); |
| 124 | +console.log('delete object.property:') |
| 125 | +console.log('delete myObj:', delete myObj.x); |
| 126 | +console.log('delete.z:', delete z); |
| 127 | +console.log('delete.nameVar:', delete h); //No se puede borrar si se declara con var |
| 128 | +console.log('typeof operand'); |
| 129 | +console.log('typeof object:', typeof myObj); |
| 130 | +console.log('typeof true:', typeof true); |
| 131 | +console.log('void (expression)'); |
| 132 | +console.log('propNameorNumber in objectName'); |
| 133 | +console.log('2 in diaSem:', 2 in diaSem); |
| 134 | +console.log('8 in diaSem:', 8 in diaSem); |
| 135 | +console.log('objectName instanceOf objectType'); |
| 136 | +if (theDay instanceof Date){ |
| 137 | + console.log('the Day instanceof Date: true'); |
| 138 | + |
| 139 | +} |
| 140 | + |
| 141 | +//- Tipos de estructuras de control |
| 142 | +//Condicionales |
| 143 | +console.log('Expresión if...else: if (condition) { statement_1; } else { statement_2; }'); |
| 144 | +let deuda = 300001 |
| 145 | +if (deuda > 300000) { |
| 146 | + console.log("Bienvenido al juego del calamar"); |
| 147 | +} else { |
| 148 | + console.log("No puedes entrar al juego del calamar. Deuda menor a $300000"); |
| 149 | +} |
| 150 | + |
| 151 | +//Bucles |
| 152 | +console.log('Expresión switch: switch (expression) { case label_1: statements_1 [break;] case label_2: statements_2 [break] ... default: statements_def [break;] }'); |
| 153 | +let juego = 'Luz roja, luz verde' |
| 154 | +switch (juego) { |
| 155 | + case 'Luz roja, luz verde': |
| 156 | + console.log('Jugaremos, muevete luz verde'); |
| 157 | + break; |
| 158 | + case 'Pentatlon de seis piernas': |
| 159 | + console.log('ddakji, biseokchigi, gong-gi, jegi y peonza'); |
| 160 | + break; |
| 161 | + case 'Mingle': |
| 162 | + console.log('Formen grupos de 5'); |
| 163 | + break; |
| 164 | + default: |
| 165 | + console.log('Ese juego no existe'); |
| 166 | + break; |
| 167 | +} |
| 168 | + |
| 169 | +console.log('Expresión for: for (begin; condition; step) { loopBody }'); |
| 170 | +const juegos = 6; |
| 171 | +for (let juego = 1; juego <= juegos; juego++){ |
| 172 | + console.log("Bienvenidos al juego: ", juego); |
| 173 | +} |
| 174 | + |
| 175 | +console.log('Expresión while: while (condition) { loopBody }'); |
| 176 | +i = 0; |
| 177 | +while (i < 6) { |
| 178 | + console.log('Felicitaciones, pasas al siguiente juego'); |
| 179 | + i++ |
| 180 | +} |
| 181 | + |
| 182 | +console.log('Expresión do...while: do { } while (condition);'); |
| 183 | +i = 0 |
| 184 | +do { |
| 185 | + console.log('Felicitaciones, pasas al siguiente juego'); |
| 186 | + i++; |
| 187 | +} while (i < 6); |
| 188 | + |
| 189 | +//- Crea un programa que imprima por consola todos los números comprendidos entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. |
| 190 | + |
| 191 | + |
| 192 | +for (let i = 10; i <= 55; i++) { |
| 193 | + if (i % 2 == 0 && i != 16 && i % 3 !== 0) { |
| 194 | + console.log(i); |
| 195 | + } |
| 196 | +} |
| 197 | + |
| 198 | + |
| 199 | + |
| 200 | + |
| 201 | + |
| 202 | + |
| 203 | + |
| 204 | + |
| 205 | + |
0 commit comments