循环结构
Solidity
中的循环结构与 C++
或 JavaScript
等大括号语言相同。
while 循环
WhileLoop.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.24;
contract WhileLoop {
function sum(uint n) public pure returns (uint) {
uint res = 0;
// 计算 1+2+...+n
while(n > 0){
res += n;
n = n - 1;
}
return res;
}
}
do while 函数
DoWhileLoop.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.24;
contract DoWhileLoop {
function sum(uint n) public pure returns (uint) {
uint res = 0;
// 计算 1+2+...+n
do {
res += n;
n = n - 1;
} while( n > 0);
return res;
}
}
for 循环
for 循环与 C++
, JavaScript
等具有同样的语法:for(初始化表达式; 循环布尔表达式; 循环变量更新)
。
初始化表达式中可以声明一个局部循环变量,示例见下:
ForLoop.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.24;
contract ForLoop {
function sum(uint n) public pure returns (uint) {
uint res = 0;
// 计算 1+2+...+n
for(uint i = 0; i <= n; i++) {
res = res + i;
}
return res;
}
}