Move语言 break continue

Move语言提供continue 和 break 关键字,允许程序跳过一轮循环或中断循环。

例如,我们在 loop 中添加两个条件,如果 i 是偶数,我们通过 continue 跳转到下一个迭代,而无需执行循环中 continue 之后的代码。当 i 等于 5 时,我们通过 break 停止迭代并退出循环。

script {
    fun main() {
        let i = 0;

        loop {
            i = i + 1;

            if (i / 2 == 0) continue;
            if (i == 5) break;

            // assume we do something here
         };

        0x1::Debug::print<u8>(&i);
    }
}

注意,如果 break 和 continue 是代码块中的最后一个关键字,则不能在其后加分号,因为后面的任何代码都不会被执行。请看这个例子:

script {
    fun main() {
        let i = 0;

        loop {
            i = i + 1;

            if (i == 5) {
                break; // will result in compiler error. correct is `break` without semi
                       // Error: Unreachable code
            };

            // same with continue here: no semi, never;
            if (true) {
                continue
            };

            // however you can put semi like this, because continue and break here
            // are single expressions, hence they "end their own scope"
            if (true) continue;
            if (i == 5) break;
        }
    }
}

Move语言还提供了关键字 abort 和 assert,用于控制程序的执行。 有条件退出 abort有时,当某些条件失败时,您需要中止程序的执行。对于这种情况,Move 提供了有 ...