Lolcode - คำสั่งและการควบคุมการไหล

LOLCODE ช่วยให้คุณสามารถควบคุมการไหลของโปรแกรมผ่านคำสั่งต่างๆ บทนี้จะอธิบายประเภทของข้อความที่มีอยู่ใน LOLCODE

งบนิพจน์

นิพจน์ที่ไม่มีการกำหนดใด ๆ กล่าวคือเรียกการดำเนินการทางคณิตศาสตร์หรือฟังก์ชันใด ๆ เป็นคำสั่งทางกฎหมายใน LOLCODE เมื่อนิพจน์ได้รับการประเมินค่าสุดท้ายจะถูกวางไว้ในตัวแปรชั่วคราว IT มูลค่าของไอทียังคงอยู่ในขอบเขตเฉพาะที่และมีอยู่จนกว่าจะมีการแทนที่ด้วยนิพจน์ในครั้งถัดไป

งบการมอบหมายงาน

คำสั่ง Assignment ใช้เพื่อกำหนดเอาต์พุตของนิพจน์ใด ๆ ให้กับตัวแปรที่กำหนด โดยทั่วไปจะมีรูปแบบ -

<any_variable> <assignment operator> <any expression>

โปรดทราบว่าคุณสามารถใช้ตัวแปรในนิพจน์ได้ก่อนที่จะมีการกำหนดตัวแปร

งบเงื่อนไข

คำสั่ง If-Then

คำสั่ง if-then เป็นการดำเนินการที่ง่ายมากที่ทำงานกับตัวแปร IT คล้ายกับคำสั่ง if – else ในภาษาโปรแกรมอื่น ๆ เช่น C และ Java

มีคำหลักสี่คำที่จะใช้คำสั่ง if – then

  • O RLY?
  • YA RLY
  • ไม่มี 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 <any expression> ที่เป็นทางเลือกระหว่างบล็อก YA RLY และ NO WAI

หาก <any expression> ที่ตามหลัง MEBBE เป็น True (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

คำชี้แจงกรณี

ใน LOLCODE คำหลัก 'WTF?' คล้ายกับการเปลี่ยนเป็นภาษาอื่น ๆ คำหลัก WTF? ใช้ IT เป็นค่านิพจน์สำหรับการเปรียบเทียบ ในการใช้ WTF บล็อกการเปรียบเทียบจะเปิดโดย OMG ซึ่งควรเป็นลิเทอรัลไม่ใช่นิพจน์

โปรดจำไว้ว่าลิเทอรัลแต่ละตัวต้องไม่ซ้ำกันเหมือนกับตัวพิมพ์ในภาษาอื่น ๆ

บล็อก OMG ต้องถูกยกเลิกโดยคำสั่ง GTFO หาก GTFO บล็อก OMG ไม่สิ้นสุดบล็อก 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