Skip to content

Commit c0688d9

Browse files
authored
Merge pull request mouredev#7743 from owen-ian/patch-1
#1 - Rust
2 parents 7348c27 + d3088c8 commit c0688d9

File tree

1 file changed

+129
-0
lines changed
  • Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/rust

1 file changed

+129
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
//=========================================
2+
// 01 - OPERADORES Y ESTRUCTURAS DE CONTROL
3+
//=========================================
4+
5+
fn main() {
6+
// Operadores Aritméticos
7+
let a: i32 = 10;
8+
let b: i32 = 3;
9+
println!("Suma: {}", a + b);
10+
println!("Resta: {}", a - b);
11+
println!("Multiplicación: {}", a * b);
12+
println!("División: {}", a / b);
13+
println!("Módulo: {}", a % b);
14+
println!("Exponenciación: {}", a.pow(b));
15+
16+
// Operadores Relacionales (Comparación)
17+
println!("Igual a: {}", a == b);
18+
println!("Diferente de: {}", a != b);
19+
println!("Menor que: {}", a < b);
20+
println!("Mayor que: {}", a > b);
21+
println!("Menor o igual que: {}", a <= b);
22+
println!("Mayor o igual que: {}", a >= b);
23+
24+
// Operadores Lógicos
25+
let x = true;
26+
let y = false;
27+
println!("AND lógico: {}", x && y);
28+
println!("OR lógico: {}", x || y);
29+
println!("NOT lógico: {}", !x);
30+
31+
// Operadores de Bits
32+
let c: i32 = 2;
33+
let d: i32 = 3;
34+
println!("AND binario: {}", c & d);
35+
println!("OR binario: {}", c | d);
36+
println!("XOR binario: {}", c ^ d);
37+
println!("Desplazamiento a la izquierda: {}", c << 1);
38+
println!("Desplazamiento a la derecha: {}", c >> 1);
39+
40+
// Operadores de Pertenencia
41+
let lista = vec![1, 2, 3, 4, 5];
42+
println!("Pertenece a la lista: {}", lista.contains(&3));
43+
println!("No pertenece a la lista: {}", !lista.contains(&6));
44+
45+
// Operadores de Asignación
46+
let mut e: i32 = 5;
47+
e += 2;
48+
println!("Suma y asignación: {}", e);
49+
e -= 2;
50+
println!("Resta y asignación: {}", e);
51+
e *= 2;
52+
println!("Multiplicación y asignación: {}", e);
53+
e /= 2;
54+
println!("División y asignación: {}", e);
55+
e %= 2;
56+
println!("Resto y asignación: {}", e);
57+
58+
// Operadores de Asignación de Bits
59+
let mut f: i32 = 2; // 0b0010
60+
f &= 3; // 0b0011
61+
println!("AND a nivel de bits y asignación: {}", f); // 0b0010
62+
f |= 1; // 0b0001
63+
println!("OR a nivel de bits y asignación: {}", f); // 0b0011
64+
f ^= 1; // 0b0001
65+
println!("XOR a nivel de bits y asignación: {}", f); // 0b0010
66+
f <<= 1;
67+
println!("Desplazamiento a la izquierda y asignación: {}", f); // 0b0100
68+
f >>= 1;
69+
println!("Desplazamiento a la derecha y asignación: {}", f); // 0b0010
70+
71+
// Otros Operadores
72+
let vec = vec![1, 2, 3, 4, 5];
73+
println!("Acceso a miembro: {}", vec[0]);
74+
let range = 1..5;
75+
println!("Rango: {:?}", range);
76+
let range_inclusivo = 1..=5;
77+
println!("Rango inclusivo: {:?}", range_inclusivo);
78+
let valor = Some(42);
79+
println!("Operador de resultado: {:?}", valor.ok_or("Error"));
80+
81+
// Operadores adicionales
82+
println!("Separador de elementos en listas: {:?}", [1, 2, 3]);
83+
println!("Terminador de sentencias: semicolon es requerido en Rust");
84+
println!("Especificador de tipo: let x: i32 = 10");
85+
println!("Operador de resolución de alcance: Vec::new()");
86+
println!("Closure: let suma = |a, b| a + b;");
87+
println!("Patrones de vinculación: let Some(x) = Some(42);");
88+
89+
// Loop infinito y de uso cotidiano, se ejecuta hasta el break
90+
let mut i = 0;
91+
loop {
92+
if i == 5 {
93+
break;
94+
}
95+
println!("{i}");
96+
i += 1;
97+
}
98+
99+
// Loop que ejecuta código mientras una condición sea verdadera
100+
let mut i = 0;
101+
while i < 5 {
102+
println!("{i}");
103+
i += 1;
104+
}
105+
106+
// Bucle for que itera sobre un rango
107+
for i in 0..5 {
108+
println!("{i}");
109+
}
110+
111+
// Loop que permite romper otros bucles internos o externos que sean etiquetados
112+
let mut a = 0;
113+
'external: loop {
114+
a += 1;
115+
println!("external: {}", a);
116+
117+
let mut b = 0;
118+
'internal: loop {
119+
b += 1;
120+
println!("internal: {}", b);
121+
if b == 2 {
122+
break 'internal;
123+
}
124+
}
125+
if a == 3 {
126+
break 'external;
127+
}
128+
}
129+
}

0 commit comments

Comments
 (0)