Solidity - For 循环

这篇文章介绍了Solidity编程语言中的for循环,提供了示例代码来演示如何计算从1到99的数字之和,并展示如何使用+=运算符。文章还讨论了循环的退出条件和找素因子的示例,适合初学者理解基本的循环结构和功能。

就像 if 语句一样,for 循环也没有什么令人惊讶的地方。以下是将 1 到 99 的所有数字相加的代码:


contract ExampleContract {
    function addNumbers()
        public
        pure
        returns (uint256) {
            uint256 sum = 0;
            for (uint256 i = 0; i < 100; i++) {
                sum = sum + i;
            }
            return sum;
    }
}

如果你更喜欢这种方式,Solidity 也支持 += 运算符。


contract ExampleContract {
    function addNumbers()
        public
        pure
        returns (uint256) {
            uint256 sum = 0;
            for (uint256 i = 0; i < 100; i++) {
                sum += i;
            }
            return sum;
    }
}

Solidity 也有 while 循环和 do while 循环,但由于它们很少被使用,目前不值得提及。

for 循环的一个非常自然的用例是遍历数组。但我们还没有介绍数组,所以我们会在那时解释它。

与其他语言一样,你可以在 for 循环内部提前从函数中返回。以下代码将从 2 开始循环,直到找到质因数。


contract ExampleContract {
    function findPrimeFactor(uint256 x)
        public
        pure
        returns (uint256) {
            // 从 2 开始,1 不是质因数
            // 使用 <= 因为 x 可能是质数
            for (uint256 i = 2; i <= x; i++) {
                if (x % i == 0) {
                    return i;
                }
            }
    }
}

练习题目

IsPrime

Fibonacci

了解更多

请查看 区块链培训营,了解更多关于智能合约开发和代币标准的内容。

  • 原文链接: rareskills.io/learn-soli...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
RareSkills
RareSkills
https://www.rareskills.io/