Mojo控制语句详解

时间:2024-10-11 12:17:47

Mojo 包含几个传统的控制流结构,用于有条件和重复执行代码块。

The if statement


Mojo 支持条件代码执行语句。有了它,当给定的布尔表达式计算结果为 时,if您可以有条件地执行缩进的代码块 。True

temp_celsius = 25
if temp_celsius > 20:
    print("It is warm.")
    print("The temperature is", temp_celsius * 9 / 5 + 32, "Fahrenheit." )

输出:

It is warm.
The temperature is 77.0 Fahrenheit.

如果您需要有条件地执行的只是一个简短的语句,则可以将整个if语句写成一行。

temp_celsius = 22
if temp_celsius < 15: print("It is cool.") # Skipped because condition is False
if temp_celsius > 20: print("It is warm.")

输出:

It is warm.

语句可以选择性地if包含任意数量的附加elif 子句,每个子句指定布尔条件和相关代码块,如果 则执行该代码块True。条件按给定顺序进行测试。当条件评估为 时True,将执行相关代码块,并且不再测试其他条件。

此外,if语句还可以包含可选else子句,当所有条件都满足时,该子句提供要执行的代码块False。

temp_celsius = 25
if temp_celsius <= 0:
    print("It is freezing.")
elif temp_celsius < 20:
    print("It is cool.")
elif temp_celsius < 30:
    print("It is warm.")
else:
    print("It is hot.")

输出:

It is warm.

Mojo 目前不支持相当于 Pythonmatch或 Cswitch 语句的模式匹配和条件执行。

Short-circuit evaluation

Mojo 遵循布尔运算符的短路求值 语义。如果运算符的第一个参数or求值为True,则不会求值第二个参数。

def true_func() -> Bool:
    print("Executing true_func")
    return True

def false_func() -> Bool:
    print("Executing false_func")
    return False

print('Short-circuit "or" evaluation')
if true_func() or false_func():
    print("True result"