Menu
Coddy logo textTech

配列のループ処理

CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 39/53。

ループカウンターを配列インデックスとして使用し、すべての要素を処理します。0から開始し、カウンターが length より厳密に小さい間、処理を続けます。これにより、範囲外アクセスを試みることなく、最後の有効なインデックスを訪れます。

この抜粋のステートメントは、提供された main 関数内で実行されます。

uint256[3] memory values = [uint256(2), 5, 8];
uint256 total = 0;
for (uint256 i = 0; i < values.length; i++) {
    total += values[i];
}
console.log(total);

ループはインデックスのゼロ、1、2を訪れ、それぞれ2、5、8を加算します。包含的な <= length 条件ではインデックス3を試行してリバートします。アキュムレータはループの外側に置きます。

array.length の終端を超えずに、すべての有効なインデックスを訪れるには < を使用します。

challenge icon

チャレンジ

簡単

a、b、cを固定サイズのメモリ配列に格納します。ループを使用して、それらの合計を計算して出力します。

テストは、次の順序でmainに引数を渡します:uint256 auint256 buint256 c。各テストは、新しいコントラクト状態で開始されます。

要求された出力にはconsole.logを使用します。要求された値のみを、1行に1つずつ出力し、タスクで指定されていない限り、余分なラベルは付けません。

自分で試してみよう

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 a, uint256 b, uint256 c) external view {
        // ここに解答を書いてください。
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Solidityプレイグラウンド