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
的值。