|
| 1 | +import java.io.FileWriter; |
| 2 | +import java.io.IOException; |
| 3 | +import java.io.PrintWriter; |
| 4 | +import java.util.Scanner; |
| 5 | + |
| 6 | +public class YellowDev { |
| 7 | + public static void main(String[] args) { |
| 8 | + int value = 1; |
| 9 | + //Operadores |
| 10 | + |
| 11 | + //Sufijo |
| 12 | + value++; |
| 13 | + System.out.println(value); //Ahora vale dos |
| 14 | + value--; |
| 15 | + System.out.println(value); //Vuelve a valer uno |
| 16 | + //Unario |
| 17 | + value = -value; |
| 18 | + System.out.println(value); //Como solamente se aplica a un valor no es una resta sino una negacion, negar 1 es igual a -1 |
| 19 | + value = +value; |
| 20 | + System.out.println(value); //No cambiara su valor debido a que si seguimos las leyes de los signos negativo mas positivo es negativo |
| 21 | + value = --value; |
| 22 | + System.out.println(value); //Ahora si relaiza el decremento pero solamente en uno dando como resultado -2 |
| 23 | + value = ++value; |
| 24 | + System.out.println(value); //Ahora se realiza el aumento en uno |
| 25 | + value = ~value; |
| 26 | + System.out.println(value); //Como este valor utiliza los bits del valor qu3 en este caso es -1 al invertirlos se obtiene el 0 en binario.Por ello muestra 0 |
| 27 | + |
| 28 | + //Multiplicativo |
| 29 | + |
| 30 | + value = 2; |
| 31 | + //Multiplicacion |
| 32 | + value = value * value; |
| 33 | + System.out.println(value); //Se obtiene 4 de multiplicar 2 * 2 |
| 34 | + //Division |
| 35 | + value = value / value; |
| 36 | + System.out.println(value); //Se obtiene 1 de dividir 1 / 1 |
| 37 | + //Modulo |
| 38 | + value = value % value; |
| 39 | + System.out.println(value); //Se obtiene 0 ya que es el resto de dividir 1/1 |
| 40 | + |
| 41 | + //Aditivo |
| 42 | + |
| 43 | + int value2 = 5; |
| 44 | + //Suma |
| 45 | + int result = value2 + value; |
| 46 | + System.out.println(result); //Se obtiene 5 de sumar 0 de value y 5 de value2 |
| 47 | + //Resta |
| 48 | + result = result - 3; |
| 49 | + System.out.println(result); //Se obtiene 2 de restarle 3 a 5 |
| 50 | + |
| 51 | + //Cambio |
| 52 | + |
| 53 | + value = 2; //El valor en binario de 2 es 0000 0010 |
| 54 | + value = value << 2; |
| 55 | + System.out.println(value); //En este caso el valor binario se recorre hacia la izquierda dos veces, dando como resultado 0000 1000 que es 8 |
| 56 | + value = value >> 3; |
| 57 | + System.out.println(value); //Ahora recorrimos 3 a la derecha entonces es 0000 0001 que es 1 |
| 58 | + //En caso del signo >>> la diferencia resalta en que se recorre la n cantidad de veces y llena de 0 a la izquierda |
| 59 | + |
| 60 | + //Relacional |
| 61 | + |
| 62 | + //Mayor que |
| 63 | + int value1 = 5; |
| 64 | + value2 = 8; |
| 65 | + System.out.println(value1 > value2); //Hace la comparacion de los valores y devuelve un valor booleanos, en este caso es false porque 5 no es mayor que 8 |
| 66 | + //Menor que |
| 67 | + System.out.println(value1 < value2); //En este caso si es true debido a que 5 si es menor que 8 |
| 68 | + int value3 = 5; |
| 69 | + //Menor igual |
| 70 | + System.out.println(value1 <= value3); //Aqui se hace una verificacion doble en donde verifica si el primer valor es menor o igual que el segundo valor, en este caso no es menor pero si es igual |
| 71 | + //Mayor igual |
| 72 | + System.out.println(value2 >= value3); //Y aqui aunque no son igual el value2 si es mayor que value3 |
| 73 | + //Intanceof, en este caso se puede usar para comparar instancias de diferentes objetos, nos devuelve valores booleanos con respecto si una isntancia se encuentra o no |
| 74 | + |
| 75 | + //Igualdad |
| 76 | + |
| 77 | + System.out.println(value == value2); //value=1, value2=8, como no son iguales devuelve un valor false |
| 78 | + System.out.println(value != value2); //Devuelve un valor true ya que si son valores diferentes |
| 79 | + //AND bit a bit |
| 80 | + int value4 = 5; |
| 81 | + int value5 = 8; |
| 82 | + System.out.println(value5 & value4); |
| 83 | + //Imprime 0 porque no hay ninguna coincidencia del numero 1 en la misma posicion |
| 84 | + /*Lo que pasa en esta ocasion es que compara todos los digitos del numero binario |
| 85 | + entonces si ambos son 1 el resultado sera 1 pero si hay un 0 el resultado sera sero, al final se saca |
| 86 | + el valor generado de la comparacion de los binarios y surge un nuevo binario y ese es el resultado, solamente |
| 87 | + se hace la conversion*/ |
| 88 | + //OR exclusivo bit a bit |
| 89 | + System.out.println(value5 ^ value4); //Lo mismo que el anterior pero si hay al menos un numero entonces el valor es 1, dando como resultado 13 |
| 90 | + //OR inclusivo | |
| 91 | + System.out.println(value5 | value4); //Retorna un 1 si y solo si uno de los valores en 1, pero si ambos son 1 devuelve un 0, en este caso imprime 13 nuevamente |
| 92 | + //Y logico |
| 93 | + //Su uso mas comun en las condicionales en donde el valor debe de cumplir una serie de reglas para que sea verdadera la condicional y sesguir con el flujo del codigo |
| 94 | + if (value2 < 2 && value3 > 5) { |
| 95 | + System.out.println("Yiyi"); |
| 96 | + } else { |
| 97 | + System.out.println("No yiyi"); |
| 98 | + } |
| 99 | + //OR logico |
| 100 | + //Este es como el Y logico pero la diferencia radica en que si al menos un valor es verdadera la condicional se vuelve true |
| 101 | + if (value2 < 2 || value3 > 5) { |
| 102 | + System.out.println("Siu yiyi"); |
| 103 | + } else { |
| 104 | + System.out.println("Nou yiyi"); |
| 105 | + } |
| 106 | + |
| 107 | + /* |
| 108 | + * Ternario |
| 109 | + * EL uso de este se asemeja a la condicional if, donde se evalua una condicion y en base a si es true o false se brinda un resultado: |
| 110 | + * */ |
| 111 | + |
| 112 | + boolean seraTrue = false; |
| 113 | + value = 1; |
| 114 | + value1 = 2; |
| 115 | + result = seraTrue ? value : value1; |
| 116 | + System.out.println(result); |
| 117 | + |
| 118 | + //Asignacion |
| 119 | + |
| 120 | + //igual |
| 121 | + int newValue = 52; |
| 122 | + System.out.println(newValue); |
| 123 | + //Mas igual |
| 124 | + newValue += 52; |
| 125 | + System.out.println(newValue); //Le suma la cantidad y luego le agrega el valor si lo ponemos al reves no se refleja el cambio debido a que la suma no ocurre |
| 126 | + //Menos igual |
| 127 | + newValue -= 2; |
| 128 | + System.out.println(newValue); //Le resta la cantidad y luego le asigna el valor |
| 129 | + //Multiplicar igual |
| 130 | + newValue *= 2; |
| 131 | + System.out.println(newValue); //Le multiplica y asigna el valor |
| 132 | + //Dividir igual |
| 133 | + newValue /= 4; |
| 134 | + System.out.println(newValue); //Le divide y asigna el valor |
| 135 | + //Modulo igual |
| 136 | + newValue %= 4; |
| 137 | + System.out.println(newValue); //Le saca el modulo y asigna el valor |
| 138 | + //&=, ^=, |=, <<=, >>=, >>>= estos operadores usan los ejemplos anteriores con los bits, entonces hace la funcion y asigna valor en una sola accion |
| 139 | + |
| 140 | + //Estructuras de control |
| 141 | + //Selectivas de seleccion o condicionales |
| 142 | + //if |
| 143 | + boolean moving = false; |
| 144 | + if (moving) { |
| 145 | + System.out.println("Stop"); //Selectiva simple |
| 146 | + } else if (moving == false) { //Selectiva doble |
| 147 | + System.out.println("god"); |
| 148 | + } else { |
| 149 | + System.out.println("God job"); |
| 150 | + } |
| 151 | + //Iterativas, de iteracion, de repeticion o repetitivas |
| 152 | + //while |
| 153 | + int contador = 5; |
| 154 | + while (contador <= 8) { |
| 155 | + System.out.println("Si"); |
| 156 | + contador++; |
| 157 | + } |
| 158 | + |
| 159 | + //Do while |
| 160 | + contador = 3; |
| 161 | + do { |
| 162 | + System.out.println("Yiyi"); |
| 163 | + contador++; |
| 164 | + } while (contador <= 5); |
| 165 | + |
| 166 | + //for |
| 167 | + int result10 = 1; |
| 168 | + for (int i = 0; i < 10; i++) { |
| 169 | + result10++; |
| 170 | + System.out.println(result10); //Dato curioso se pueden hacer un ciclo infinito si se dejan los parametros del for vacios |
| 171 | + } |
| 172 | + |
| 173 | + //for each |
| 174 | + int[] numbers = {1, 2, 3, 4, 5}; |
| 175 | + for (int numeber : numbers) { |
| 176 | + System.out.println(numeber); |
| 177 | + } |
| 178 | + //Declaracion Break |
| 179 | + int MyVariable = 6; |
| 180 | + for (int i = 0; i < 10; i++) { |
| 181 | + if (i != MyVariable) { |
| 182 | + System.out.println(i); |
| 183 | + } else { |
| 184 | + break; //Terminar bucles |
| 185 | + } |
| 186 | + } |
| 187 | + //Declaracion continue |
| 188 | + int MyVariable2 = 6; |
| 189 | + for (int i = 0; i < 10; i++) { |
| 190 | + if (i != MyVariable2) { |
| 191 | + System.out.println(i); |
| 192 | + } else { |
| 193 | + continue; //Saltar el flujo en el punto que sea 6 |
| 194 | + } |
| 195 | + } |
| 196 | + //Declaracion return |
| 197 | + /* |
| 198 | + * int Myvariable3 = 5; |
| 199 | + if (Myvariable3 < 10) { |
| 200 | + return Myvariable3 + 3; |
| 201 | + } |
| 202 | + System.out.println(Myvariable3); |
| 203 | + return 0; |
| 204 | + * */ |
| 205 | + |
| 206 | + //Declaracion yield |
| 207 | + String weekDay = "Thursday"; |
| 208 | + int dayNumber = switch (weekDay) { |
| 209 | + case "MONDAY", "FRIDAY", "SUNDAY" -> 1; |
| 210 | + case "TUESDAY" -> 2; |
| 211 | + case "THURSDAY", "SATURDAY" -> { |
| 212 | + System.out.println("It's either Thursday or Saturday!"); |
| 213 | + yield 3; // Usamos yield para devolver un valor después de ejecutar más instrucciones |
| 214 | + } |
| 215 | + case "WEDNESDAY" -> 4; |
| 216 | + default -> { |
| 217 | + System.out.println("Invalid day: " + weekDay); |
| 218 | + yield -1; // Usamos yield para devolver un valor predeterminado en caso de un día no válido |
| 219 | + } |
| 220 | + }; |
| 221 | + System.out.println(dayNumber); |
| 222 | + //Switch case |
| 223 | + String subject = "Maths"; |
| 224 | + switch (subject) { |
| 225 | + case "Maths" -> System.out.println("Maths"); |
| 226 | + case "Sunny" -> System.out.println("Sunny"); |
| 227 | + case "Algebraic" -> System.out.println("Algebraic"); |
| 228 | + } |
| 229 | + //Try catch |
| 230 | + PrintWriter out = null; |
| 231 | +/* |
| 232 | + try { |
| 233 | + System.out.println("Entering" + " try statement"); |
| 234 | +
|
| 235 | + out = new PrintWriter(new FileWriter("OutFile.txt")); |
| 236 | + for (int i = 0; i < SIZE; i++) { |
| 237 | + out.println("Value at: " + i + " = " + list.get(i)); |
| 238 | + } |
| 239 | + } catch (IndexOutOfBoundsException e) { |
| 240 | + System.err.println("Caught IndexOutOfBoundsException: " |
| 241 | + + e.getMessage()); |
| 242 | +
|
| 243 | + } catch (IOException e) { |
| 244 | + System.err.println("Caught IOException: " + e.getMessage()); |
| 245 | +
|
| 246 | + } finally { |
| 247 | + if (out != null) { |
| 248 | + System.out.println("Closing PrintWriter"); |
| 249 | + out.close(); |
| 250 | + } |
| 251 | + else { |
| 252 | + System.out.println("PrintWriter not open"); |
| 253 | + } |
| 254 | + } |
| 255 | +
|
| 256 | + */ |
| 257 | + //Ejercicio extra |
| 258 | + for (int i = 10; i <= 55; i++) { |
| 259 | + if (i == 16 || (i % 3 == 0)) { |
| 260 | + continue; |
| 261 | + } |
| 262 | + System.out.println(i); |
| 263 | + } |
| 264 | + } |
| 265 | +} |
0 commit comments