4.2 Bucles (for, while)

html

Punto del curso de Solidity: 4.2 Bucles (for, while)

Solidity, el lenguaje de programación utilizado para desarrollar contratos inteligentes en la blockchain de Ethereum, ofrece una estructura similar a otros lenguajes de programación cuando se trata de controles de flujo. En este punto del curso, vamos a explorar los bucles for y while, fundamentales para ejecutar un bloque de código repetidamente.

Bucles for

El bucle for en Solidity funciona de la misma manera que en otros lenguajes de programación. Se utiliza para iterar una cantidad específica de veces, y su sintaxis general es:

for (inicialización condición actualización) {
    // bloque de código a ejecutar
}

Ejemplo de bucle for

Veamos un ejemplo básico donde usamos un bucle for para sumar los primeros 10 números naturales:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0

contract SumaForLoop {
    function sumarPrimerosDiezNumeros() public pure returns (uint) {
        uint suma = 0
        // Iteramos desde 1 hasta 10 para sumar los números
        for (uint i = 1 i <= 10 i  ) {
            suma  = i
        }
        return suma // Retorna 55
    }
}

Bucles while

El bucle while repite un bloque de código siempre que una condición sea verdadera. Su sintaxis general es:

while (condición) {
    // bloque de código a ejecutar
}

Ejemplo de bucle while

Ahora vamos a demostrar el uso de un bucle while con otro ejemplo en el que sumamos números naturales hasta que la suma supera un cierto valor límite:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0

contract SumaWhileLoop {
    function sumarHastaLimite(uint limite) public pure returns (uint) {
        uint suma = 0
        uint i = 1
        // Continuamos sumando hasta que la suma sea mayor o igual al límite
        while (suma < limite) {
            suma  = i
            i  
        }
        return suma
    }
}

Importancia de Limitar las Iteraciones

Es crucial ser consciente del costo de gas al usar bucles en Solidity. Un bucle que se ejecuta demasiadas veces puede consumir todo el gas otorgado para una transacción, haciendo que la transacción falle. Por ejemplo:

for (uint i = 0 i < 1000 i  ) {
    // operaciones costosas
}

El código anterior puede gastar una cantidad considerable de gas, y es fundamental asegurarse de que el número de iteraciones sea manejable.

Consideraciones Adicionales

  • Uso de Arrays: Iterar sobre arrays se convierte en un patrón común en contratos inteligentes.
  • Limitar el tamaño: Para garantizar que las funciones que contienen bucles no fallen por problemas de gas, es buena práctica limitar el tamaño de los arrays o el número de iteraciones.
  • Optimización: Siempre evalúa alternativas que puedan sustituir un bucle, como el uso de funciones matemáticas cuando sea posible.

En conclusión, los bucles for y while son herramientas poderosas en Solidity, y su uso eficiente puede ayudar a crear contratos inteligentes efectivos y económicos.

Anterior...Siguiente

[mwai_chat]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *