Lolcode - 语句和流程控制
LOLCODE 允许您通过各种语句控制程序的流程。本章解释了 LOLCODE 中可用的不同类型的语句。
表达式语句
在 LOLCODE 中,没有赋值的表达式(即,简单地调用数学运算或任何函数)是合法的语句。表达式计算完成后,其最终值将放置在临时变量 IT 中。IT 的值保留在局部作用域中,并且存在直到下次被表达式替换。
赋值语句
赋值语句用于将任何表达式的输出赋值给给定的变量。它们通常具有以下形式:
<any_variable> <assignment operator> <any expression>
请注意,您可以在表达式中使用变量,即使在它被赋值之前。
条件语句
If-Then 语句
if-then 语句是一个非常简单的操作,它作用于 IT 变量。它类似于 C 和 Java 等其他编程语言中的 if-else 语句。
有四个关键字用于应用 if-then 语句。
- O RLY?
- YA RLY
- NO WAI
- OIC
一般形式为:
<any_expression>
O RLY?
YA RLY
<code to execute if above condition is true>
NO WAI
<code to execute in this block>
OIC
以上所有语句都可以在同一行中用逗号分隔,例如:
BOTH SAEM NAMES AN "Name", O RLY? YA RLY, VISIBLE "My name is ABCD" NO WAI, VISIBLE "Your name is ABCD" OIC
在使用 if-then 语句时,可以在 YA RLY 和 NO WAI 代码块之间使用可选的 MEBBE <任何表达式>。
如果 MEBBE 后面的 <任何表达式> 为真 (WIN),则执行该代码块。否则,如果该表达式为假,则跳过该代码块,直到下一个 MEBBE、NO WAI 或 OIC 语句。
示例
<any expression>
O RLY?
YA RLY
<code to be executed if true>
MEBBE <expression>
<code to be executed mebbe is true>
MEBBE <expression>
<code to be executed mebbe is true>
NO WAI
<code to be executed if above are false>
OIC
示例
BOTH SAEM NAMES AN "NAME" O RLY? YA RLY, VISIBLE "YOUR NAME IS ABCD" MEBBE BOTH SAEM ANIMAL AN "OUR NAME IS ABCD" VISIBLE "NO ABCD" OIC
Case 语句
在 LOLCODE 中,关键字“WTF?”类似于许多其他语言中的 switch。关键字 WTF?将 IT 作为比较的表达式值。要使用 WTF,比较代码块由 OMG 打开,它应该是一个字面量,而不是表达式。
请记住,每个字面量必须是唯一的,类似于其他语言中的情况。
OMG 代码块必须以 GTFO 语句终止。如果 OMG 代码块没有以 GTFO 终止,则执行下一个 OMG 代码块,直到到达 GTFO。
如果没有任何字面量计算为真,则默认情况由 OMGWTF 表示。
WTF?
OMG <any value to compare>
<code block to execute if expression is satisfied>
OMG <any value to compare>
<code block to execute if expression is satisfied>
OMGWTF
<code block to execute as a default case>
OIC
NAME, WTF?
OMG "A"
VISIBLE "ABCD"
GTFO
OMG "E"
VISIBLE "EFGH"
GTFO
OMGWTF
VISIBLE "ZYXW"
OIC
以上代码的输出结果将为:
"E"
EFGH
广告