1
+ package com .example .headfirstjava ;
2
+
3
+ import org .springframework .boot .SpringApplication ;
4
+
5
+ public class Natalinacn {
6
+
7
+ public static void main (String [] args ) {
8
+ SpringApplication .run (HeadFirstjavaApplication .class , args );
9
+
10
+ //#01-OPERADORES Y ESTRUCTURAS DE CONTROL
11
+
12
+ //Operador de Asignación (=)
13
+
14
+ int numero = 1 ;
15
+
16
+ System .out .println ("La variable número tiene asignado el valor " + numero );
17
+
18
+ //Operadores Aritméticos
19
+ //Suma (+)
20
+ int suma = 1 + 2 ;
21
+ System .out .println ("El resultado de la suma es " + suma );
22
+
23
+ //Resta (-)
24
+ int resta = 7 - 2 ;
25
+ System .out .println ("El resultado de la resta es " + resta );
26
+
27
+ //Multiplicación (*)
28
+ int multi = 5 *5 ;
29
+ System .out .println ("El resultado de la multiplicación es " + multi );
30
+
31
+ //División (/)
32
+ int div = 8 /4 ;
33
+ System .out .println ("El resultado de la división es " + div );
34
+
35
+ //Resto (%)
36
+ int resto = 4 %2 ;
37
+ System .out .println ("El resultado del resto es " + resto );
38
+
39
+
40
+ /*Operadores unarios: Los operadores unarios sólo requieren un operando; realizan diversas operaciones,
41
+ como incrementar/decrementar un valor en uno, negar una expresión o invertir el valor de un booleano.*/
42
+
43
+ //+ Operador de más unario; indica un valor positivo (los números son positivos sin este operador)
44
+ int result = +1 ;
45
+ System .out .println ("El valor de result es positivo " + result );
46
+
47
+ //- Operador de menos unario; niega una expresión
48
+ result = -result ;
49
+ System .out .println ("El valor de resultado ahora es negativo " + result );
50
+
51
+ //++ Operador de incremento; incrementa un valor en 1
52
+ result ++;
53
+ System .out .println ("El valor de result ahora se incrementó en 1" + result );
54
+
55
+ //-- Operador de decremento; decrementa un valor en 1
56
+ result --;
57
+ System .out .println ("El valor de result ahora se decrementó en 1" + result );
58
+
59
+ //! Operador de complemento lógico; invierte el valor de un booleano
60
+ boolean exitoso = false ;
61
+ System .out .println ("Exitoso es falso " + exitoso );
62
+ System .out .println ("Exitoso con el operador ! cambia de valor a verdadero " + !exitoso );
63
+
64
+
65
+ //Operadores de Igualdad y Relacionales
66
+ //== Igual a
67
+ int num1 = 1 ;
68
+ int num2 = 8 ;
69
+
70
+ if (num1 == num2 ){
71
+ System .out .println ("Los números son iguales" );
72
+ }
73
+
74
+ //!= No igual a
75
+ if (num1 != num2 ){
76
+ System .out .println ("Los números son diferentes" );
77
+ }
78
+
79
+ //> Mayor que
80
+ if (num1 >num2 ){
81
+ System .out .println ("El número 1 " + num1 + "es mayor al número 2" + num2 );
82
+ }
83
+
84
+ //>= Mayor o igual que
85
+ if (num1 >=num2 ){
86
+ System .out .println ("El número 1 " + num1 + "es mayor o igual al número 2" + num2 );
87
+ }
88
+
89
+ //< Menor que
90
+ if (num1 <num2 ){
91
+ System .out .println ("El número 1 " + num1 + "es menor al número 2" + num2 );
92
+ }
93
+
94
+ //<= Menor o igual que
95
+ if (num1 <num2 ){
96
+ System .out .println ("El número 1 " + num1 + "es menor o igual al número 2" + num2 );
97
+ }
98
+
99
+ //Operadores Condicionales
100
+ //&& AND condicional
101
+ //|| OR condicional
102
+
103
+ int value1 = 5 ;
104
+ int value2 = 2 ;
105
+
106
+ if (value1 == 5 && value2 ==2 ){
107
+ System .out .println ("El value1 es 5 y el value 2 es 2" );
108
+ }
109
+
110
+ if (value1 == 5 || value2 == 5 ){
111
+ System .out .println ("El value1 es 5 o el value2 es 5" );
112
+ }
113
+
114
+ //?: Ternario (abreviatura para una declaración if-then-else)
115
+ String ternario = (value1 >0 ) ? "El valor es mayor a 0" : "El valor es menor a 0" ;
116
+ System .out .println (ternario );
117
+
118
+ //Operador de Comparación de Tipo
119
+
120
+ //instanceof Compara un objeto con un tipo especificado
121
+ Dog dog1 = new Dog ();
122
+
123
+ System .out .println ("El objeto dog1 es instancia de Dog? " + (dog1 instanceof Dog ));
124
+
125
+ //Operadores Bitwise y de Desplazamiento de Bits
126
+ //
127
+ //~ Complemento bitwise unario
128
+ //<< Desplazamiento a la izquierda con signo
129
+ //>> Desplazamiento a la derecha con signo
130
+ //>>> Desplazamiento a la derecha sin signo
131
+ //& AND bitwise
132
+ //^ OR exclusivo bitwise
133
+ //| OR inclusivo bitwise
134
+
135
+ int g = 5 ; // 5 en binario es 00000101
136
+
137
+ int bitwiseComplement = ~g ; // bitwiseComplement es -6 (en binario 11111010)
138
+ int leftShift = g << 2 ; // leftShift es 20 (00010100)
139
+ int rightShift = g >> 1 ; // rightShift es 2 (00000010)
140
+ int unsignedRightShift = g >>> 1 ; // unsignedRightShift es 2 (00000010)
141
+
142
+ int h = 3 ; // 3 en binario es 00000011
143
+ int bitwiseAnd = g & h ; // bitwiseAnd es 1 (00000001)
144
+ int bitwiseOr = g | h ; // bitwiseOr es 7 (00000111)
145
+ int bitwiseXor = g ^ h ; // bitwiseXor es 6 (00000110)
146
+
147
+
148
+
149
+ //ESTRUCTURAS DE CONTROL
150
+ //1. Estructuras Condicionales
151
+ //If
152
+ int edad = 18 ;
153
+ if (edad > 18 ){
154
+ System .out .println ("Eres un adulto" );
155
+ }
156
+
157
+ //if-else
158
+ if (edad > 18 ){
159
+ System .out .println ("Eres un adulto" );
160
+ }else {
161
+ System .out .println ("No eres un adulto" );
162
+ }
163
+
164
+ //if-else if-else
165
+
166
+ int puntaje = 40 ;
167
+
168
+ if (puntaje >=85 ){
169
+ System .out .println ("Eres muy inteligente" );
170
+ } else if (puntaje >= 60 ) {
171
+ System .out .println ("Vas bien encaminado, sigue estudiando" );
172
+ } else if (puntaje >= 40 ) {
173
+ System .out .println ("No seas vago, estudia más" );
174
+ }else {
175
+ System .out .println ("No vas a aprender nada si sigues sin estudiar" );
176
+ }
177
+
178
+ //switch
179
+ int dia = 2 ;
180
+
181
+ switch (dia ){
182
+ case 1 :
183
+ System .out .println ("El día es Lunes" );
184
+ break ;
185
+ case 2 :
186
+ System .out .println ("El día es Martes" );
187
+ break ;
188
+ case 3 :
189
+ System .out .println ("El día es Miércoles" );
190
+ break ;
191
+ case 4 :
192
+ System .out .println ("El día es Jueves" );
193
+ break ;
194
+ default :
195
+ System .out .println ("Es otro día" );
196
+ break ;
197
+ }
198
+
199
+ //2. Bucles
200
+ //for
201
+ for (int i = 0 ; i < 5 ; i ++) {
202
+ System .out .println ("Iteracion: " + i );
203
+ }
204
+
205
+ //for-each
206
+
207
+ int [] arrayNumeros = {1 , 5 , 8 , 9 , 22 };
208
+
209
+ for (int num : arrayNumeros ) {
210
+ System .out .println ("Número " + num );
211
+ }
212
+
213
+ //while
214
+ int count = 0 ;
215
+ while (count < 5 ){
216
+ System .out .println ("Count en el while " + count );
217
+ count ++;
218
+ }
219
+
220
+ //do-while
221
+ int countDoWhile = 0 ;
222
+ do {
223
+ System .out .println ("Count en el do-while: " + countDoWhile );
224
+ countDoWhile ++;
225
+ }while (countDoWhile < 5 );
226
+
227
+ //3. Estructuras de Control de Salto
228
+ //break
229
+ for (int i = 0 ; i < 10 ; i ++) {
230
+ if (i == 5 ) {
231
+ break ; // Salir del bucle cuando i es 5
232
+ }
233
+ System .out .println ("Con el break: i: " + i );
234
+ }
235
+
236
+
237
+ //continue
238
+ for (int i = 0 ; i < 10 ; i ++) {
239
+ if (i % 2 == 0 ) {
240
+ continue ; // Saltar la iteración actual si i es par
241
+ }
242
+ System .out .println ("Con el continue: i: " + i );
243
+ }
244
+
245
+ //yield: El yield se usa dentro de un bloque switch para devolver un valor después de realizar algún cálculo o lógica adicional.
246
+ //En este caso, se usa para devolver el número de días laborales restantes en la semana después de calcularlo.
247
+
248
+ Day diaYield = Day .MONDAY ;
249
+ System .out .println ("Días laborales restantes: " + calculateRemainingWorkDays (diaYield ));
250
+
251
+
252
+ //return
253
+ System .out .println ("Sum con return: " + add (5 , 3 ));
254
+
255
+ //* DIFICULTAD EXTRA (opcional):
256
+ // * Crea un programa que imprima por consola todos los números comprendidos
257
+ // * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
258
+
259
+ for (int i = 10 ; i < 56 ; i ++) {
260
+ if (i % 2 == 0 && i != 16 && i % 3 != 0 ) {
261
+ System .out .println (i );
262
+ }
263
+ }
264
+
265
+
266
+
267
+
268
+
269
+ }
270
+ //Método para return
271
+ public static int add (int a , int b ) {
272
+ return a + b ; // Terminar el método y devolver un valor
273
+
274
+ }
275
+
276
+ //Método para yield
277
+ // Método que utiliza switch con yield
278
+ public static int calculateRemainingWorkDays (Day d ) {
279
+ return switch (d ) {
280
+ case SATURDAY , SUNDAY -> 0 ;
281
+ default -> {
282
+ int remainingWorkDays = 5 - d .ordinal ();
283
+ yield remainingWorkDays ;
284
+ }
285
+ };
286
+ }
287
+
288
+ // Enumeración de días de la semana
289
+ enum Day {
290
+ MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY , SATURDAY , SUNDAY
291
+ }
292
+
293
+
294
+ }
0 commit comments