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