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.
Deja una respuesta