Solidez - si ... si no ... declaración.
los if...else if... declaración es una forma avanzada de if...else eso le permite a Solidity tomar una decisión correcta en varias condiciones.
Sintaxis
La sintaxis de una instrucción if-else-if es la siguiente:
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
}
No hay nada especial en este código. Es solo una serie deif declaraciones, donde cada if es parte del elsecláusula de la declaración anterior. Las declaraciones se ejecutan en función de la condición verdadera, si ninguna de las condiciones es verdadera,else se ejecuta el bloque.
Ejemplo
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
}
}
Ejecute el programa anterior siguiendo los pasos proporcionados en el capítulo Primera aplicación de Solidity.
Salida
0: string: 3