Lição: 027: Estruturas de Controle: Laços
Nesta aula, vamos explorar as estruturas de controle em Solidity, focando especificamente nos laços. Os laços são essenciais para executar um bloco de código várias vezes até que uma certa condição seja atendida. Em Solidity, existem vários tipos de laços que você pode usar: for
, while
e do-while
. Vamos nos aprofundar em cada tipo com exemplos para entender melhor como funcionam.
1. Laço For
O laço for
é frequentemente usado quando o número de iterações é conhecido antecipadamente. Ele consiste em três partes: inicialização, condição e incremento.
Sintaxe
for (inicialização; condição; incremento) {
// código a ser executado
}
Exemplo
Aqui está um exemplo que calcula a soma dos primeiros n
números naturais:
pragma solidity ^0.8.0;
contract SomaNumerosNaturais {
function soma(uint n) public pure returns (uint) {
uint total = 0;
for (uint i = 1; i <= n; i++) {
total += i; // Adicionando o número atual ao total
}
return total;
}
}
Neste exemplo, a função soma
itera de 1 até n
, adicionando cada número à variável total
e retornando a soma final.
2. Laço While
O laço while
continua a executar enquanto a condição especificada for verdadeira. É útil quando o número de iterações não é conhecido de antemão.
Sintaxe
while (condição) {
// código a ser executado
}
Exemplo
Aqui está um exemplo que imita o exemplo do laço for
, mas usa um laço while
em vez disso:
pragma solidity ^0.8.0;
contract SomaNumerosNaturaisWhile {
function soma(uint n) public pure returns (uint) {
uint total = 0;
uint i = 1;
while (i <= n) {
total += i; // Adicionando o número atual ao total
i++; // Incrementando i
}
return total;
}
}
Neste exemplo, o laço continua a somar os números até que i
exceda n
. A variável i
é inicializada antes do laço e incrementada dentro dele.
3. Laço Do-While
O laço do-while
é semelhante ao laço while
, mas garante que o bloco de código será executado pelo menos uma vez antes da condição ser testada.
Sintaxe
do {
// código a ser executado
} while (condição);
Exemplo
Aqui está um exemplo de um laço do-while
que garante que o laço seja executado pelo menos uma vez:
pragma solidity ^0.8.0;
contract SomaNumerosNaturaisDoWhile {
function soma(uint n) public pure returns (uint) {
uint total = 0;
uint i = 1;
do {
total += i; // Adicionando o número atual ao total
i++; // Incrementando i
} while (i <= n);
return total;
}
}
Neste exemplo, o laço do-while
primeiro adiciona i
ao total
e depois verifica a condição. Isso permite pelo menos uma iteração, mesmo que n
seja inicialmente zero.
Resumo
Os laços são poderosas estruturas de controle que ajudam a automatizar tarefas repetitivas em contratos inteligentes. Cobrimos três tipos de laços em Solidity: for
, while
e do-while
. Cada laço tem seu caso de uso específico e pode ser utilizado de forma eficaz para manipular dados, realizar cálculos e gerenciar iterações com base em condições específicas.
Continue praticando esses conceitos, e você se tornará proficiente em escrever contratos inteligentes eficientes que utilizam estruturas de controle de maneira eficaz. Boa codificação!