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: MITpragma 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ódigofunction 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 2return _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: MITpragma solidity ^0.8.13;contract Loop {function loop() public {// for loopfor (uint i = 0; i < 10; i++) {if (i == 3) {// Skip to next iteration with continuecontinue;}if (i == 5) {// Exit loop with breakbreak;}}// while loopuint j;while (j < 10) {j++;}}}