If, Else, For e While

porMatheusem08/05/2022

Nesse artigo iremos abordar o funcionamento das instruções condicionais if, else e os loops for, while e do while no Solidity.

If e Else

Traduzidos para o português, 'Se' e 'Senão', essas são as instruções condicionais utilizadas para validar se determinada lógica é verdadeira ou não. Abaixo vemos um exemplo simples de como aplicá-las em nossas aplicações.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract IfElse {
function foo(uint x) public pure returns (uint) {
if (x < 10) {
return 0;
} else if (x < 20) {
return 1;
} else {
return 2;
}
}
// Utilizando o if ternário, podemos reduzir as linhas de código,
// facilitando nossa leitura do código
function ternario(uint _x) public pure returns (uint) {
// if (_x < 10) {
// return 1;
// }
// return 2;
// Maneira abreviada de escrever a instrução if / else
// Nessa instrução, se o _x for menor que 10,
// retornará true e então nos retornar o valor
// que está após o ?, ou seja o 1, em caso de false,
// irá retornar o valor após o :, ou seja o 2
return _x < 10 ? 1 : 2;
}
}

For, While e DoWhile

No Solidity também podemos utilizar loops para determinadas funções, porém, tome cuidado ao utilizar o while e do while, se não forem usados de forma correta, poderão atingir os limites de gas facilmente.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Loop {
function loop() public {
// for loop
for (uint i = 0; i < 10; i++) {
if (i == 3) {
// Skip to next iteration with continue
continue;
}
if (i == 5) {
// Exit loop with break
break;
}
}
// while loop
uint j;
while (j < 10) {
j++;
}
}
}

Testar no Remix