breakとcontinue
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 34/53。
ループ内では、break は直ちにループを終了します。continue は現在の反復の残りをスキップし、次の反復に移ります。for ループでは、continue の後も更新式が実行されます。
この抜粋の文は、提供された main 関数内で実行されます。
for (uint256 i = 1; i <= 5; i++) {
if (i == 2) { continue; }
if (i == 4) { break; }
console.log(i);
}2回目の反復では出力をスキップします。4回目では出力する前に終了するため、5回目に到達することはありません。break と continue はコントラクト内のすべての関数ではなく、最も近い外側のループに作用します。
break は最も近いループを終了し、continue は現在の反復の残りをスキップします。
チャレンジ
簡単1 から n までの整数を出力し、指定された banned の値をスキップしてから、done を出力します。n は最大 8 で、banned は 1 から 10 の間です。
テストは次の順序で main に引数を渡します:uint256 n、uint256 banned。各テストは新しいコントラクト状態で開始されます。
要求された出力には console.log を使用してください。要求された値のみを、1 行に 1 つずつ出力し、タスクで指定されていない限り余分なラベルは付けないでください。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 n, uint256 banned) external view {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド