SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
14.11.2024

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!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!