Solidity 中的条件执行

2025年6月2日 | 阅读6分钟

Solidity 中的条件语句用于根据给定标准的执行情况执行部分代码。 当程序员想要使用代码执行的给定路径集之一时,通常会使用它。条件语句使程序仅在满足条件并返回布尔值 True 时才执行部分代码。 Solidity 使用的条件语句如下。

  1. IF 条件
  2. IF....else 条件
  3. IF....else If....else 条件
  4. 三元运算符

在本教程中,我们将详细介绍所有条件执行及其描述、语法和示例。 让我们开始吧。

If 条件

IF 是基本且最常用的条件语句。 仅当满足特定条件时,代码才会被执行。 如果指定的标准返回布尔值 True,则将执行部分代码;否则,将不执行任何操作。

语法

例如

程序 1:在以下示例中,合约 Example 定义了一个无符号状态变量 x 和一个函数,用于显示 Solidity 程序中 if 语句的执行情况。

解释: 在上面的程序中,如果条件 x < 1000 满足,则条件将为 True,IF 块将被执行,并且程序将返回 True,否则条件不满足,将不会返回任何输出。

在我们的例子中,x = 1000,因此 x < 1000 将返回 False,因此不会返回任何输出。

输出

Conditional Execution in Solidity

if...else 语句

此条件语句是“IF”的扩展版本,因为它使程序能够在更精确的模式下执行条件。 如果条件返回布尔值 True,则执行 If 语句。 否则,对于布尔值 False,则执行 else 语句。

语法

程序 1:在以下示例中,合约 Example 定义了一个无符号状态变量 x 和一个函数,用于显示 Solidity 程序中 if-else 语句的执行情况。

解释: 在上面的程序中,我们使用了 if...else 条件执行。 如果 x%2 返回 0 作为输出,则条件将为 True,并且 IF 块将被执行,并且程序将返回布尔值 True,否则将返回布尔值 False。

在我们的例子中,x = 10,因此,if 条件 x %2 == 0 将返回 True,因此 IF 语句将被执行。

输出

Conditional Execution in Solidity

if...else if...else 语句

此条件语句是 if...else 的更新版本,因为它允许程序员在考虑不同条件的情况下做出某个决定。 如果满足标准 1,则将执行 IF 语句的代码块。 否则,它将检查 elseif 块的条件,如果它返回布尔值 True,则将执行 elseif 的代码块。 但是,如果 elseif 条件也失败(如果没有一个条件为 True),它将最终移动到 else 块,并且将执行 else 代码块。

语法

程序 1:: 在以下示例中,合约 Example 定义了一个无符号状态变量 x 和一个函数,用于显示 Solidity 程序中if...else if...else 语句的执行情况。

解释: 在上面的程序中,我们使用了 if...else if...else 条件来在考虑不同条件的情况下做出某个决定。 如果条件 x<200 返回 true,它将返回字符串“the number is less than 200”。 如果条件为 false,它将移动到 elseif 块,并将检查标准 (x ==200)。 如果满足条件,它将返回字符串“the number is equal to 200”。 如果 elseif 块也返回 False,则意味着没有一个条件为 True,最后将执行 else 块。

在我们的例子中,x = 10,因此,if 条件 x<200 将返回 True,因此 IF 语句将被执行,即“the number is less than 200”。

输出

Conditional Execution in Solidity

三元运算

三元运算符是 Solidity 中的一种条件执行类型。 它的工作方式与使用三个操作数的 if 运算类似,即条件? 和:运算符。 在程序员想要使用更少的代码行并且想要在一行中编写一个简单的 if-else 语句的地方,三元运算符会派上用场,因为它会消耗更少的 gas。

语法

示例

程序:在以下示例中,合约 TernaryOperatorExample 定义了一个构造函数和一个函数,用于显示 Solidity 程序中三元运算符的执行情况。

解释: 在上面的程序中,我们使用三元运算符来查找哪个数字大于 x 或 y。 如果条件 x > y 返回 true,它将返回字符串“x is greater than y”。 如果条件为 false,它将返回字符串“y is greater than x”。 在我们的例子中,x = 500,y=1100; 因此,条件 x>y 将返回 false,因此将执行语句 2,即“y is greater than x”。

输出

Conditional Execution in Solidity