Appearance
循环语句
在 Solidity 中,有两种类型的循环语句:for 循环和 while 循环,它们分别指定在执行期间需要重复执行的语句块。
Solidity 的循环语句与 Java、C++ 等语言类似。
for 循环
for 循环在执行期间重复执行指定数量的语句块。其语法如下所示:
solidity
for ( initialization ; condition ; increment ) {
statement(s);
}在语法中:
initialization:初始化语句块设置起始值,通常为一个计数器变量。condition:条件语句块定义循环的结束条件,当条件为false时跳出循环。increment:增量语句块增加计数器变量的值。statement(s):运行在每次迭代期间需要执行的语句。
以下是一个 for 循环的运用场景,它向数组中添加元素:
solidity
// 添加元素到数组
pragma solidity ^0.5.0;
contract ForLoopExample {
uint[5] public elements;
function addElements() public {
for (uint i = 0; i < elements.length; i++) {
elements[i] = i + 1;
}
}
}在此示例中,我们从 0 开始,以增量的方式向数组 elements 添加元素,当 i 等于数组长度时循环将停止。
while 循环
while 循环是定义一个满足条件的布尔表达式,只要该表达式的值为真,循环就会继续执行。while 循环的语法如下所示:
solidity
while(condition) {
statement(s);
}在语法中:
condition:条件语句块定义循环的结束条件,当条件为false时跳出循环。statement(s):运行在每次迭代期间需要执行的语句。
以下是一个 while 循环的使用示例,该示例规定了数值计数器 n 小于 10,则累加所有数字:
solidity
pragma solidity ^0.5.0;
contract WhileLoopExample {
uint public n = 0;
uint public sum = 0;
function addNumbers() public {
while (n < 10) {
sum += n;
n++;
}
}
}在此示例中,我们定义了一个循环,当数字计数器 n 小于 10 时累加所有数字并增加计数器 n 的值。