Lolcode-ステートメントとフロー制御

LOLCODEを使用すると、さまざまなステートメントを介してプログラムのフローを制御できます。この章では、LOLCODEで使用できるさまざまなタイプのステートメントについて説明します。

式ステートメント

割り当てのない式、つまり単に数学演算や関数を呼び出すことは、LOLCODEの正当なステートメントです。式が評価されると、その最終値は一時変数ITに配置されます。ITの価値はローカルスコープに残り、次に式に置き換えられるまで存在します。

割り当てステートメント

代入ステートメントは、任意の式の出力を特定の変数に割り当てるために使用されます。それらは一般的に次の形式です-

<any_variable> <assignment operator> <any expression>

割り当てられる前であっても、式で変数を使用できることに注意してください。

条件文

If-Thenステートメント

if-thenステートメントは、IT変数を操作する非常に単純な操作です。これは、CやJavaなどの他のプログラミング言語のif–elseステートメントに似ています。

if–thenステートメントを適用するための4つのキーワードがあります。

  • O RLY?
  • YARLY
  • 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ステートメントを使用している間、オプションのMEBBE <任意の式>をYARLYブロックとNOWAIブロックの間で使用できます。

MEBBEに続く<anyexpression>が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

ケースステートメント

LOLCODEでは、キーワード「WTF?」他の多くの言語での切り替えに似ています。キーワード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