Skip to content

Commit 2fa8405

Browse files
authored
Merge pull request mouredev#5960 from Clotrack/main
# 01 - Kotlin
2 parents 5fa4637 + 46c546d commit 2fa8405

File tree

1 file changed

+121
-0
lines changed
  • Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/kotlin

1 file changed

+121
-0
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
// 01 OPERADORES Y ESTRUCTURAS DE CONTROL
2+
// EJERCICIO:
3+
/* 01-01 Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
4+
* Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
5+
* (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
6+
*/
7+
// Inicializo unas variables random para trabajar con ellas, para todos los ejercicios
8+
var myOperator1 = 5
9+
var myOperator2 = 3
10+
var myProveOperator = 0
11+
var i = 0
12+
var myBooleanTrue = true
13+
var myBooleanFalse = false
14+
var rangeAlfabet = 'a'..'d'
15+
var myCahr = 'b'
16+
17+
// En kotlin tenemos 5 tipos de operadores aritmeticos [+] [-] [*] [/] [%] a continuacion unos ejemplos variados
18+
myProveOperator = myOperator1 + myOperator2 ++
19+
println(myProveOperator)
20+
myProveOperator = myOperator1 --
21+
println(myProveOperator)
22+
println(myOperator1 * 9)
23+
println((myProveOperator * myOperator1) / myOperator2)
24+
if(myProveOperator % 2 == 0) {
25+
println("El numero " + myProveOperator + " es par")
26+
}
27+
// En kotlin tenemos cuatro operadores logicos [|] = OR [&] = AND [.xor()] = XOR y Desigualdad [!] y a continuacion unos ejemplos
28+
println("${myBooleanTrue || myBooleanFalse} \n${myBooleanTrue && myBooleanFalse} \n${myBooleanFalse.xor(myBooleanTrue)} \n${!myBooleanTrue}")
29+
30+
// En Kotlin tenemos diferentes comparadores [>] mayor [<] menor y [=] que podemos jugar con ellos y mezclarlos con igualdad [>=]
31+
if(myOperator1 > 20){
32+
println("El numero $myOperator1 es mayor que 20")
33+
} else if(myOperator1 < 20){
34+
println("El numero $myOperator1 es menor que 20")
35+
} else {
36+
println("El numero $myOperator1 es igual a 20")
37+
}
38+
39+
// No podemos olvidarnos de los comparadores [==] de igualdad o el de [!=] diferencia
40+
if(myOperator1 == myProveOperator){
41+
println("Te va a tocar la loteria")
42+
} else if(myOperator1 != myProveOperator){
43+
println("No hay suerte colega, asi es la vida")
44+
} else {
45+
println("Esto no tendria que pasar colega!")
46+
}
47+
48+
//Ya por ultimo y para mi sorpresa se pueden utilizar comparaciones como [a..d] o [1..4]
49+
if (myCahr in rangeAlfabet){ // este tipo de comparador [a..d] se debe usar dentro de una variable
50+
println("El caracter $myCahr esta dentro del rango entre a y d")
51+
} else{
52+
println("El caracter $myCahr esta fuera del rango entre a y d")
53+
}
54+
55+
if (myOperator2 !in 1..4){
56+
println("El numero $myOperator2 esta dentro del rango entre 1 y 4")
57+
} else{
58+
println("El numero $myOperator2 esta fuera de rango entre el 1 y el 4")
59+
}
60+
61+
/* 01-02 Utilizando las operaciones con operadores que tú quieras, crea ejemplos
62+
* que representen todos los tipos de estructuras de control que existan
63+
* en tu lenguaje: Condicionales, iterativas, excepciones...
64+
*/
65+
// Me cae tanta gracia que dejadme repetir este ejemplo condicional de 'if, else if y else' ;)
66+
if(myOperator1 == myProveOperator){
67+
println("Te va a tocar la loteria")
68+
} else if(myOperator1 != myProveOperator){
69+
println("No hay suerte colega, asi es la vida")
70+
} else {
71+
println("Esto no tendria que pasar colega!")
72+
}
73+
74+
// No es el unico condicional tambien tenemos 'when' es en apariencia identico a un swithc
75+
when (myProveOperator){
76+
myOperator1 -> println("Los espiritus estan de tu lado hoy")
77+
myOperator2 -> println("Ten cuidado al salir dedida, ponte crema solar o arderas como un misto")
78+
else -> {
79+
println("Ten cuidado esta noche al salir con la luna llena")
80+
}
81+
}
82+
83+
// Comencemos con los bucles en este caso con el 'while' quiero aclarar un concepto la condicion de cierre del
84+
// bucle es hacer mientras la condicion se cumpla! en el ejemplo mientras myProbeOperator sea menor que 10
85+
while (myProveOperator < 10){
86+
println("El valor del operador de prueba es $myProveOperator ")
87+
myProveOperator ++
88+
}
89+
90+
//Sigamos con el bucle 'do-while que en este caso si o si almenos una vez debe ejecutarse el do manejar con cuidado!
91+
do{
92+
println("Numero de veces que declare mi amor y me rompieron el corazon en mil trocitos $myProveOperator")
93+
myProveOperator ++
94+
} while (myProveOperator < myOperator2)
95+
96+
// Ya para finalizar el marabilloso y explendido bucle 'for' aclarar que la diferencia esque la condicion de
97+
// cierre de este bucle es hacer asta que se cumpla la condicion!
98+
for (myProveOperator in 5 downTo 1){
99+
println("Doy vuelta y vueltas sin parar, que mareo! Ya ne se cuanto tiempo llevo aqui!")
100+
}
101+
102+
// Ahora que tenemos la variable myProbeOperator en 0 y viendo lo extraño que es declarar 'for' en kotlin
103+
// quiero imprimir una tabla de multiplicar del 5 ;) sin operaciones dentro del 'for' directamente en su condicion
104+
// debo aclarar que no he podido crear las tipicas variables dentro del bucle como [i, j o k] sino fuera del bucle :(
105+
for (myProveOperator in 0..50 step 5){
106+
println("$i x 5 = $myProveOperator")
107+
i ++
108+
}
109+
// 01-03 Debes hacer print por consola del resultado de todos los ejemplos.
110+
// Todos los ejemplos/resultados anteriores ya han sido impresos por consola anteriormente!!
111+
112+
/* 01-04 DIFICULTAD EXTRA (opcional):
113+
* Crea un programa que imprima por consola todos los números comprendidos
114+
* entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
115+
*/
116+
i = 10
117+
for (i in 10..55) {
118+
if (i % 2 == 0 && i != 16 && i % 3 != 0){
119+
println(i)
120+
}
121+
}

0 commit comments

Comments
 (0)