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 语句时,可以在 YARLY 和 NO WAI 块之间使用可选的 MEBBE <any expression>。

如果 MEBBE 后面的 <any expression> 为 true (WIN),则执行该块。 否则,如果该表达式为 false,则将跳过该块,直到下一个 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。

如果没有任何文字评估为 true,则默认情况由 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