📜  Solidity – While、Do-While 和 For 循环

📅  最后修改于: 2022-05-13 01:55:18.533000             🧑  作者: Mango

Solidity – While、Do-While 和 For 循环

当我们必须一遍又一遍地执行一个动作时,就会使用循环。在编写合约时,可能会出现我们必须重复执行某些操作的情况,在这种情况下,执行循环以减少语句的行数。 Solidity 支持以下循环也可以减轻编程压力。

While 循环

这是solidity中最基本的循环,其目的是在条件为真时重复执行一条语句或语句块,一旦条件为假,循环终止。

句法:

while (condition) {
    statement or block of code to be executed if the condition is True
}

示例:在下面的示例中,合约类型演示了 while 循环的执行以及如何使用 while 循环初始化数组。

Solidity
// Solidity program to 
// demonstrate the use
// of 'While loop'
pragma solidity ^0.5.0; 
  
// Creating a contract 
contract Types { 
      
    // Declaring a dynamic array
    uint[] data; 
    
    // Declaring state variable
    uint8 j = 0;
     
    // Defining a function to 
    // demonstrate While loop'
    function loop(
    ) public returns(uint[] memory){
    while(j < 5) {
        j++;
        data.push(j);
     }
      return data;
    }
}


Solidity
// Solidity program to 
// demonstrate the use of
// 'Do-While loop'
pragma solidity ^0.5.0; 
  
// Creating a contract 
contract Types { 
      
    // Declaring a dynamic array
    uint[] data; 
    
    // Declaring state variable
    uint8 j = 0;
  
    // Defining function to demonstrate 
    // 'Do-While loop'
    function loop(
    ) public returns(uint[] memory){
    do{
        j++;
        data.push(j);
     }while(j < 5) ;
      return data;
    }
}


Solidity
// Solidity program to 
// demonstrate the use
// of 'For loop'
pragma solidity ^0.5.0; 
   
// Creating a contract
contract Types { 
     
    // Declaring a dynamic array 
    uint[] data; 
  
    // Defining a function 
    // to demonstrate 'For loop'
    function loop(
    ) public returns(uint[] memory){
    for(uint i=0; i<5; i++){
        data.push(i);
     }
      return data;
    }
}


输出 :

While 循环输出

Do-While 循环

此循环与while 循环非常相似,只是在循环结束时会进行条件检查,即即使条件为假,循环也将始终执行至少一次。

句法:

do 
{
   block of statements to be executed
} while (condition);

示例:在下面的示例中,合约类型演示了 do-while 循环的执行以及如何使用 do-while 循环初始化数组。

坚固性

// Solidity program to 
// demonstrate the use of
// 'Do-While loop'
pragma solidity ^0.5.0; 
  
// Creating a contract 
contract Types { 
      
    // Declaring a dynamic array
    uint[] data; 
    
    // Declaring state variable
    uint8 j = 0;
  
    // Defining function to demonstrate 
    // 'Do-While loop'
    function loop(
    ) public returns(uint[] memory){
    do{
        j++;
        data.push(j);
     }while(j < 5) ;
      return data;
    }
}

输出 :

Do-While 循环输出

循环

这是最紧凑的循环方式。它需要三个由分号分隔的参数来运行。第一个是“循环初始化”,其中迭代器用起始值初始化,该语句在循环开始之前执行。其次是“测试语句”,它检查条件是否为真,如果条件为真,则循环执行否则终止。第三个是增加或减少迭代器的“迭代语句”。下面是 for 循环的语法:

句法:

for (initialization; test condition; iteration statement) {
       statement or block of code to be executed if the condition is True
}

示例:在下面的示例中,合约类型演示了 while 循环的执行以及如何使用 while 循环初始化数组。

坚固性

// Solidity program to 
// demonstrate the use
// of 'For loop'
pragma solidity ^0.5.0; 
   
// Creating a contract
contract Types { 
     
    // Declaring a dynamic array 
    uint[] data; 
  
    // Defining a function 
    // to demonstrate 'For loop'
    function loop(
    ) public returns(uint[] memory){
    for(uint i=0; i<5; i++){
        data.push(i);
     }
      return data;
    }
}

输出 :

For 循环输出