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文の使い方も他のプログラミング言語と同じですね。配列と併せておさえておきましょう。