Solidez - if ... else if ... declaração.
o if...else if... declaração é uma forma avançada de if...else que permite ao Solidity tomar uma decisão correta em várias condições.
Sintaxe
A sintaxe de uma instrução if-else-if é a seguinte -
if (expression 1) {
Statement(s) to be executed if expression 1 is true
} else if (expression 2) {
Statement(s) to be executed if expression 2 is true
} else if (expression 3) {
Statement(s) to be executed if expression 3 is true
} else {
Statement(s) to be executed if no expression is true
}
Não há nada de especial neste código. É apenas uma série deif declarações, onde cada if é uma parte do elsecláusula da declaração anterior. As declarações são executadas com base na condição verdadeira, se nenhuma das condições for verdadeira, então oelse bloco é executado.
Exemplo
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10;
}
function getResult() public view returns(string memory) {
uint a = 1;
uint b = 2;
uint c = 3;
uint result
if( a > b && a > c) { // if else statement
result = a;
} else if( b > a && b > c ){
result = b;
} else {
result = c;
}
return integerToString(result);
}
function integerToString(uint _i) internal pure
returns (string memory) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint len;
while (j != 0) {
len++;
j /= 10;
}
bytes memory bstr = new bytes(len);
uint k = len - 1;
while (_i != 0) {
bstr[k--] = byte(uint8(48 + _i % 10));
_i /= 10;
}
return string(bstr);//access local variable
}
}
Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .
Resultado
0: string: 3