Menu
Coddy logo textTech

Bucle for mejorado

Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 66 de 75.

Hay diferentes formas de iterar sobre un array, aquí tienes algunas de ellas:

Considera el siguiente array:

let numbers = [1, 2, 3, 4, 5];
  • Iterador directo:

    for num in numbers.iter() {}
    // Valores: 1, 2, 3, 4, 5
  • Índice y Valor:

    for (index, value) in numbers.iter().enumerate() { }
    // Valores: (0,1), (1,2), (2,3), (3,4), (4,5)
  • Slices de tamaño específico:

    for chunk in numbers.chunks(2) { }
    // Valores: [1,2], [3,4], [5]
  • Iterar con mutación:

    for num in numbers.iter_mut() { 
    	*num *= 2;
    }
    // El arreglo se convierte en: [2, 4, 6, 8, 10]
challenge icon

Desafío

Fácil

Crea un programa que procese una lista de compras con artículos y sus precios, y proporcione diferentes vistas de los datos.

El programa debe:

  1. Imprimir cada número de artículo y precio (usando enumerate)
  2. Imprimir los precios en parejas (usando chunks) como "bundle deals"
  3. Aplicar un descuento del 10% a todos los precios (usando iter_mut)
  4. Imprimir los precios finales con descuento

Hoja de referencia

Diferentes formas de iterar sobre arrays en Rust:

Iterador directo:

for num in numbers.iter() {}
// Values: 1, 2, 3, 4, 5

Índice y valor con enumerate:

for (index, value) in numbers.iter().enumerate() { }
// Values: (0,1), (1,2), (2,3), (3,4), (4,5)

Slices de tamaño específico con chunks:

for chunk in numbers.chunks(2) { }
// Values: [1,2], [3,4], [5]

Iterar con mutación usando iter_mut:

for num in numbers.iter_mut() { 
    *num *= 2;
}
// Array becomes: [2, 4, 6, 8, 10]

Pruébalo tú mismo

fn main() {
    let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];

    println!("Original Prices:");
    // TODO: Usar enumerate para imprimir cada número de artículo y precio
    // Esperado: "Item 1: $2.99" etc.


    println!("\nBundle Deals:");
    // TODO: Usar chunks para imprimir pares de precios y sus sumas
    // Esperado: "Bundle 1: $2.99 + $1.50 = $4.49" etc.


    // TODO: Usar iter_mut para aplicar un 10% de descuento a todos los precios


    println!("\nPrices after 10% discount:");
    // TODO: Imprimir los precios finales después del descuento
    // Esperado: "$2.69" etc.

}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals