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"