Solidityでwhile文/do-while文を書く方法について解説します。
構文
Solidityでwhile文/do-while文を書くには、それぞれ、以下のようにします。
while文
while文を書くには、以下のようにします。
while(条件) {
処理
}
do-while文
do-while文を書くには、以下のようにします。
while文とは異なり、実行が先(ループ条件に関わらずdo句の処理が実行される)で、その後またループ条件の判定を経てループが回る(do句の処理が実行される)、といった形となります。
do {
処理
} while(条件);
サンプルコード
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Test {
uint[] numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function testWhileLoop() public view returns(uint) {
uint sum = 0;
uint8 i = 0;
// while文(条件が満たされる限りループ)
while(i < numbers.length) {
sum += numbers[i];
i++;
}
return sum;
}
function testDoWhileLoop() public view returns(uint) {
uint sum = 0;
uint8 i = 0;
// do-while文(実行が先、その後は条件が満たされる限りループ)
do {
sum += numbers[i];
i++;
} while(i < numbers.length);
return sum;
}
}
for文と同様、while文/do-while文の使い方も他のプログラミング言語と同じですね。配列と併せておさえておきましょう。