Estruturas de Controle

Condicionais

As estruturas condicionais permitem que o contrato inteligente execute ações dependendo do cumprimento de condições específicas.

  • if-else: É a estrutura condicional mais básica, utilizada para executar blocos de código caso uma condição seja verdadeira ou falsa.

if (condicao) {
    // Código a ser executado se a condição for verdadeira
} else {
    // Código a ser executado se a condição for falsa
}

Laços (Loops)

Os laços permitem executar um bloco de código repetidamente sob certas condições.

  • for: Utilizado para repetir um bloco de código um número determinado de vezes.

for (inicialização; condição; incremento) {
    // Código a ser executado a cada iteração
}
  • while: Executa um bloco de código enquanto uma condição específica for verdadeira.

while (condição) {
    // Código a ser executado enquanto a condição for verdadeira
}
  • do-while: Similar ao laço while, mas garante que o bloco de código seja executado pelo menos uma vez.

do {
    // Código a ser executado
} while (condição);

Controle de Fluxo

O Solidity também inclui declarações de controle de fluxo que afetam como os laços e condicionais são executados.

  • break: Termina a execução do laço mais interno. É usado para sair de um laço quando uma condição específica é atendida.

  • while (condição) {
        // Código a ser executado enquanto a condição for verdadeira
        if (expressão) {
            // Interrompe a execução do laço se a expressão for verdadeira
            break;
        }
    }
  • continue: Pula o restante do código no laço atual e inicia a próxima iteração do laço.

    while (condição) {
        // Código a ser executado enquanto a condição for verdadeira
        if (expressão) {
            // Sai desta iteração do laço se a expressão for verdadeira
            continue;
        }
    }

Manipulação de Erros

Existem também estruturas para manipular erros e reverter transações, se necessário.

  • require: É usado para validar condições e reverter a transação se a condição não for atendida, opcionalmente com uma mensagem de erro.

require(condição, "Mensagem de erro");
  • revert: Reverte a transação. Pode ser utilizado com uma mensagem de erro específica.

revert("Mensagem de erro");
  • assert: Usado para realizar verificações internas e de invariantes. Se a condição avaliada for falsa, a transação é revertida e consome todo o gás disponível, indicando um erro grave.

assert(condição);

Last updated