Solidité - si ... sinon si ... déclaration.

le if...else if... déclaration est une forme avancée de if...else qui permet à Solidity de prendre une décision correcte à partir de plusieurs conditions.

Syntaxe

La syntaxe d'une instruction if-else-if est la suivante -

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
}

Il n'y a rien de spécial à propos de ce code. C'est juste une série deif déclarations, où chacun if fait partie de la elseclause de la déclaration précédente. Les instructions sont exécutées en fonction de la condition vraie, si aucune des conditions n'est vraie, alors leelse bloc est exécuté.

Exemple

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
   }
}

Exécutez le programme ci-dessus en suivant les étapes fournies dans le chapitre Application Solidity First .

Production

0: string: 3