【Solidity】while文/do-while文の書き方は?

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

タイトルとURLをコピーしました