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