Lolcode - คู่มือฉบับย่อ
LOLCODE เป็นภาษาโปรแกรมลึกลับที่ได้รับแรงบันดาลใจจากเรื่องตลก ๆ บนอินเทอร์เน็ต ออกแบบมาเพื่อทดสอบขอบเขตของการออกแบบภาษาโปรแกรม
บทนี้จะทำให้คุณคุ้นเคยกับการตั้งค่าสภาพแวดล้อมภายในสำหรับ LOLCODE ติดตั้งบน Windows และเรียกใช้สคริปต์ออนไลน์ที่Tutorialspoint-codingground
การตั้งค่าสภาพแวดล้อมท้องถิ่น
ล่าม LOLCODE เขียนด้วยภาษา C มันตีความรหัสที่เขียนด้วยภาษา LOLCODE บนหลายแพลตฟอร์ม ล่าม LOLCODE เรียกว่า lci ซึ่งย่อมาจาก LOLCODE Interpreter
โปรดทราบว่า LOLCODE สนับสนุนการติดตั้งล่ามโดยตรงสำหรับระบบปฏิบัติการ MAC เท่านั้น ในการติดตั้ง LOLCODE ในระบบปฏิบัติการของคุณคุณต้องทำตามขั้นตอนด้านล่างนี้ -
- กด Command + Space แล้วพิมพ์ Terminal แล้วกด enter/return สำคัญ
- เรียกใช้ในแอป Terminal
- $ git โคลน https://github.com/justinmeza/lci.git
- $ cd lci
- $ cmake.
- $ make && ทำการติดตั้ง
การติดตั้งบน Windows
หากคุณต้องการติดตั้ง LOLCODE บนระบบปฏิบัติการ Windows โปรดทำตามขั้นตอนเหล่านี้ -
ขั้นแรกให้เพิ่ม MinGW และ Python ในเส้นทางตัวแปรสภาพแวดล้อมของคุณ โดยคลิกขวาที่My Computer, เลือก Properties, จากนั้นเลือก Advanced system settings. เลือก Environment Variables. ในกล่องนี้ให้เลือกไฟล์PATH ตัวแปรแล้วคลิก Edit.
ตอนนี้เพิ่ม "; C: \ MinGW \ bin; C: \ Python32" ต่อท้ายพา ธ นั้น
จากนั้นเปิดไฟล์ Command Prompt และไปที่ไดเร็กทอรีโปรเจ็กต์โดยใช้คำสั่ง "cd" เช่น
รันสคริปต์ install.py
การเรียกใช้สคริปต์ออนไลน์ด้วย TutorialsPoint - codingground
ในการเรียกใช้สคริปต์ของคุณอย่างง่ายดายและรวดเร็วให้ใช้แพลตฟอร์มการเข้ารหัสที่ TutorialsPoint มีให้ สำหรับสิ่งนี้ไปที่ลิงค์ต่อไปนี้เพื่อเรียกใช้สคริปต์ของคุณทางออนไลน์ -
https://www.tutorialspoint.com/execute_lolcode_online.phpLOLCODE มีไวยากรณ์ที่แตกต่างกันเมื่อเทียบกับภาษาโปรแกรมอื่น ๆ แต่จำได้ง่ายกว่า บทนี้ให้ไวยากรณ์พื้นฐานของ LOLCODE
สร้าง
โครงสร้าง LOLCODE เป็นคำแสลง ตารางต่อไปนี้แสดงรายการตามตัวอักษรของโครงสร้างที่ดำเนินการจนถึงตอนนี้ -
ซีเนียร์ | สร้างและใช้งาน |
---|---|
1 | BTW เริ่มต้นความคิดเห็นบรรทัดเดียว |
2 | DOWN <variable>!!<times> สิ่งนี้สอดคล้องกับตัวแปร = ตัวแปร - ครั้ง โปรดทราบว่า "times" เป็นส่วนขยายภาษาสำหรับ wut-only |
3 | GIMMEH <variable> นี่แสดงถึงคำสั่งอินพุต |
4 | GTFO ซึ่งจะคล้ายกับ break ในภาษาอื่น ๆ และเป็นวิธีที่จะแยกออกจากลูป |
5 | HAI สิ่งนี้สอดคล้องกับ main ()ฟังก์ชันในภาษาอื่น ๆ เป็นจุดเริ่มต้นของโปรแกรมใน LOLCODE |
6 | HEREZ <label> นี่เป็นอีกหนึ่งส่วนขยายภาษา wut-only และประกาศป้ายกำกับสำหรับใช้กับ SHOO |
7 | I HAS A <type> <variable> สิ่งนี้ประกาศตัวแปรประเภทดังกล่าว LOLCODE มีสามประเภทในตัว -
โปรดทราบว่าประเภทเป็นส่วนขยายภาษา wut-only |
8 | IM IN YR LOOP สิ่งนี้เริ่มต้นการวนซ้ำที่ไม่มีที่สิ้นสุด วิธีเดียวที่จะออกจากลูปคือการใช้ GTFO สอดคล้องกับสำหรับ(;;) ในภาษาอื่น ๆ |
9 | IZ <expr1> <operator> <expr2>?: Conditional structure สิ่งนี้คล้ายกับตัวดำเนินการ if ในภาษาอื่น Operator เป็นหนึ่งใน: ใหญ่กว่าเล็กกว่า SAEM AS สังเกตว่า? ในตอนท้ายเป็นทางเลือก |
10 | KTHX มันจบบล็อก สอดคล้องกับ} |
11 | KTHXBAI ซึ่งจะสิ้นสุดโปรแกรม |
12 | NOWAI นี้สอดคล้องกับอื่น ๆ |
13 | PURR <expr> สิ่งนี้จะพิมพ์อาร์กิวเมนต์บนหน้าจอตามด้วยขึ้นบรรทัดใหม่ มันเป็นส่วนขยายภาษา wut เท่านั้น |
14 | RELSE สิ่งนี้สอดคล้องกับ else (if) |
15 | SHOO นี่เป็นอีกหนึ่งส่วนขยายภาษา wut-only ซึ่งสอดคล้องกับ goto (สยองขวัญ!) |
16 | UP <variable>!!<times> สิ่งนี้สอดคล้องกับตัวแปร = ตัวแปร + ครั้ง "ครั้ง" ในที่นี้คือส่วนขยายภาษา wut-only |
17 | VISIBLE <expr> สิ่งนี้จะพิมพ์อาร์กิวเมนต์บนหน้าจอ โปรดทราบว่าสิ่งนี้ไม่ได้พิมพ์ขึ้นบรรทัดใหม่ |
18 | YARLY นี่แสดงถึงจุดเริ่มต้นของบล็อกเงื่อนไข "จริง" |
ตัวอย่างบางส่วนของคำสแลงใน LOLCODE ได้แก่ -
- สวัสดีสวัสดี
- KTHXBYE โอเคขอบคุณลาก่อน
- BTW เป็นไปตามนั้น
- OBTW ก็โอแล้ว
- TLDR ยาวเกินไป ไม่ได้อ่าน
ช่องว่าง
ในภาษาโปรแกรมส่วนใหญ่คำหลักหรือโทเค็นอาจไม่มีช่องว่างระหว่างคำเหล่านี้ อย่างไรก็ตามในบางภาษาจะใช้ช่องว่างในโทเค็นเพื่อแยกความแตกต่าง
จุลภาค
เครื่องหมายจุลภาคจะทำงานเหมือนคีย์เวิร์ดขึ้นบรรทัดใหม่ในภาษาส่วนใหญ่เช่น \n ใน Java และ C คุณสามารถเขียนคำสั่งจำนวนมากในบรรทัดเดียวใน LOLCODE โดยที่คุณแยกคำสั่งโดยใช้ลูกน้ำ (,)
สามช่วงเวลา (…)
จุดสามจุด (…) ช่วยให้คุณสามารถรวมโค้ดหลายบรรทัดเป็นบรรทัดเดียวหรือคำสั่งเดียวโดยรวม (... ) ที่ท้ายบรรทัด สิ่งนี้ทำให้คอมไพเลอร์ถือว่าเนื้อหาของบรรทัดถัดไปเป็นเนื้อหาของบรรทัดก่อนหน้าเท่านั้น โค้ดไม่สิ้นสุดสามารถเขียนร่วมกันเป็นคำสั่งเดียวได้ตราบเท่าที่แต่ละบรรทัดสิ้นสุดด้วยจุดสามจุด
ความคิดเห็นถูกยกเลิกโดยขึ้นบรรทัดใหม่ โปรดทราบว่าความต่อเนื่องของบรรทัด (... ) และ (,) หลังความคิดเห็น (BTW) จะถูกละเว้นโดย lci
ความคิดเห็น
ความคิดเห็นบรรทัดเดียวเขียนตามด้วยคีย์เวิร์ด BTW อาจเกิดขึ้นที่ใดก็ได้ภายในเนื้อหาของโปรแกรม: อาจอยู่ที่บรรทัดแรกของโปรแกรมระหว่างโปรแกรมระหว่างบรรทัดบางบรรทัดหรือเมื่อสิ้นสุดโปรแกรม
ทั้งหมดนี้เป็นความคิดเห็นบรรทัดเดียวที่ถูกต้อง
I HAS A VAL ITZ 19 BTW VAL = 19
I HAS A VAL ITZ 19, BTW VAL = 19
I HAS A VAL ITZ 14
BTW VAR = 14
ใน LOLCODE ความคิดเห็นหลายบรรทัดจะเขียนตามด้วย OBTW และลงท้ายด้วย TLDR
นี่คือความคิดเห็นหลายบรรทัดที่ถูกต้อง -
I HAS A VAL ITZ 51
OBTW this is a comment
No it’s a two line comment
Oops no.. it has many lines here
TLDR
การสร้างไฟล์
โปรแกรม LOLCODE เริ่มต้นด้วยคีย์เวิร์ด HAI และควรลงท้ายด้วย KTHXBYE เนื่องจาก LOLCODE ใช้ภาษาชวเลข HAI ย่อมาจาก Hi และ KTHXBYE สามารถจำได้ว่าเป็น“Ok, thanks, bye ”.
ตัวอย่าง
HAI 1.2
I HAS A NAME
VISIBLE "NAME::"!
GIMMEH NAME
VISIBLE "tutorialsPoint " NAME "!"
KTHXBYE
เช่นเดียวกับภาษาโปรแกรมอื่น ๆ LOLCODE ช่วยให้คุณสามารถกำหนดตัวแปรประเภทต่างๆ บทนี้จะทำให้คุณคุ้นเคยกับการทำงานกับตัวแปรใน LOLCODE
ขอบเขตของตัวแปร
ขอบเขตของตัวแปรเป็นแบบโลคัลของฟังก์ชันหรือบล็อกของโปรแกรมกล่าวคือไม่สามารถเรียกตัวแปรที่กำหนดในขอบเขตหนึ่งในขอบเขตอื่น ๆ ของโปรแกรมเดียวกันได้ ตัวแปรสามารถเข้าถึงได้หลังจากที่มีการประกาศเท่านั้น
โปรดทราบว่าไม่มีขอบเขตทั่วโลกของตัวแปรใน LOLCODE
หลักการตั้งชื่อ
ชื่อตัวแปรมักเรียกว่าตัวระบุ นี่คือหลักการบางประการสำหรับการตั้งชื่อตัวแปรใน LOLCODE -
ตัวระบุตัวแปรอาจเป็นอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กทั้งหมด (หรือทั้งสองตัวผสมกัน)
โดยสามารถขึ้นต้นด้วยตัวอักษรเท่านั้นจากนั้นอาจตามด้วยตัวอักษรตัวเลขและขีดล่างอื่น ๆ
LOLCODE ไม่อนุญาตให้ใช้ช่องว่างเครื่องหมายขีดกลางหรือสัญลักษณ์อื่น ๆ ในขณะตั้งชื่อตัวแปร
ตัวระบุตัวแปรคำนึงถึงตัวพิมพ์เล็กและใหญ่
นี่คือกฎบางส่วนสำหรับชื่อที่ถูกต้องและไม่ถูกต้องสำหรับตัวแปรใน LOLCODE−
ชื่อควรขึ้นต้นด้วยตัวอักษรเสมอ ตัวอย่างเช่น,name, Name ถูกต้อง
ชื่อของตัวแปรต้องไม่ขึ้นต้นด้วยตัวเลข ตัวอย่างเช่น,2var ไม่ถูกต้อง
ชื่อของตัวแปรต้องไม่ขึ้นต้นด้วยอักขระพิเศษ
ตัวแปรสามารถมี _ หรือตัวเลขที่ใดก็ได้ภายในชื่อยกเว้นที่ดัชนีเริ่มต้น ตัวอย่างเช่น,name2_m เป็นชื่อที่ถูกต้อง
ตัวอย่างชื่อที่ถูกต้องใน LOLCODE แสดงไว้ด้านล่าง -
HAI 1.2
I HAS A food ITZ "111.00033"
I HAS A food2 ITZ "111"
I HAS A fo_od ITZ "1"
VISIBLE food
VISIBLE food2
VISIBLE fo_od
KTHXBYE
คำสั่งประกาศทั้งหมดในโค้ดด้านบนถูกต้องและจะสร้างผลลัพธ์ต่อไปนี้เมื่อดำเนินการ -
sh-4.3$ lci main.lo
111.00033
111
1
ตัวอย่างบางส่วนของคำสั่งที่ไม่ถูกต้องและผลลัพธ์แสดงไว้ด้านล่าง -
ตัวอย่าง 1
HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE
รหัสด้านบนจะให้ผลลัพธ์ต่อไปนี้เมื่อคุณดำเนินการ -
sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).
ตัวอย่าง 2
HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE
รหัสด้านบนจะให้ผลลัพธ์ต่อไปนี้เมื่อคุณดำเนินการ -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".
ตัวอย่างที่ 3
HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE
รหัสด้านบนจะให้ผลลัพธ์ต่อไปนี้เมื่อคุณดำเนินการ -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
การประกาศและการกำหนดตัวแปร
ถึง declareตัวแปร LOLCODE มีคีย์เวิร์ด“ I HAS A” ซึ่งตามด้วยชื่อตัวแปร คุณสามารถค้นหาด้านล่างของไวยากรณ์สำหรับการประกาศตัวแปร
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
ถึง assignตัวแปรเป็นค่าในคำสั่งเดียวกันจากนั้นคุณสามารถติดตามชื่อตัวแปรด้วย "ITZ" จากนั้นให้ค่าที่คุณต้องการกำหนด ใช้ไวยากรณ์ต่อไปนี้เพื่อกำหนดค่าให้กับตัวแปร -
<variable> R <expression>
ตัวอย่าง
VAR R "Green" BTW VAR is now a YARN and equals "Green"
VAR R 30 BTW VAR is now a NUMBR and equals 30
นอกจากนี้คุณยังสามารถ declare และ assign ตัวแปรในเวลาเดียวกันโดยใช้ไวยากรณ์ต่อไปนี้ -
I HAS A VAR ITZ VALUE
ตัวอย่าง
I HAS A NAME ITS “TUTORIALS POINT”
ตัวอย่าง
HAI 1.2
BTW this is how we declare variables
I HAS A food
I HAS A bird
BTW this is how we assign variables
food R 1
bird R 5
BTW this is how initialize variables
I HAS A biz ITZ "OMG!"
VISIBLE food
VISIBLE biz
VISIBLE bird
KTHXBYE
โปรแกรมด้านบนแสดงการประกาศตัวแปรและพิมพ์ออกมา ผลลัพธ์คือ -
sh-
4.3$ lci main.lo
1
OMG!
5
ประเภทหล่อ
ในการแปลงค่าประเภทหนึ่งเป็นประเภทอื่นเราใช้การหล่อแบบ การแคสต์ NUMBAR เป็น NUMBR จะตัดทอนส่วนทศนิยมของเลขทศนิยม การแคสต์ NUMBAR ไปยัง YARN (โดยการพิมพ์เป็นต้น) จะตัดทอนผลลัพธ์เป็นทศนิยม 2 ตำแหน่งเริ่มต้น
ตัวอย่าง
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
บรรทัดโค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้ -
sh-4.3$ lci main.lo
111.00033
111.00033
ตัวแปรทั้งหมดที่ประกาศในโปรแกรม LOLCODE เป็นตัวแปรภายในและไม่มีขอบเขตส่วนกลางในภาษานี้สำหรับตัวแปรใด ๆ
LOLCODE ออกแบบมาเพื่อทดสอบขอบเขตของการออกแบบภาษาโปรแกรม เป็นภาษาโปรแกรมลึกลับที่ได้รับแรงบันดาลใจจากสิ่งตลก ๆ บนอินเทอร์เน็ต บทนี้จะช่วยให้คุณเข้าใจประเภท LOLCODE
ประเภท
ปัจจุบันประเภทตัวแปรใน LOLCODE คือ -
- สตริง (YARN)
- จำนวนเต็ม (NUMBR)
- ลอย (NUMBAR)
- และบูลีน (TROOF)
- อาร์เรย์ (BUKKIT)
ใน LOLCODE ประเภทตัวแปรจะถูกจัดการแบบไดนามิกโดยคอมไพลเลอร์ หากตัวแปรไม่มีค่าเริ่มต้นจะเรียกว่าไม่พิมพ์ (เรียกว่า NOOB ใน LOLCODE)
ไวยากรณ์สำหรับการประกาศและการใช้ประเภทต่างๆใน LOLCODE แสดงไว้ด้านล่าง -
เพื่อสร้างตัวแปรประเภทข้อมูลใด ๆ
I HAS A <VARIABLE> ITZ A <DATA TYPE>
เพื่อสร้างตัวแปรและกำหนดค่าให้กับมัน
I HAS A <VARIABLE> ITZ <EXPRESSION<
เพื่อกำหนดค่าให้กับชนิดข้อมูลที่สร้างไว้แล้ว
<VARIABLE> R <EXPRESSION>
ไม่ได้พิมพ์ (NOOB)
ประเภทข้อมูลที่ไม่ได้พิมพ์ (เรียกว่า NOOB) ไม่สามารถแปลงเป็นประเภทอื่นได้ยกเว้นเป็นประเภทข้อมูล TROOF การส่ง NOOB ไปยัง TROOF โดยปริยายทำให้ตัวแปร FAIL หลังจากนั้นการดำเนินการใด ๆ บน NOOB ส่งผลให้เกิดข้อผิดพลาด
การแคสต์ชนิดข้อมูล NOOB อย่างชัดเจน (เช่นชนิดที่ไม่ได้กำหนดค่าเริ่มต้นและไม่มีค่าเริ่มต้นใด ๆ ) ผลลัพธ์ของตัวแปรเป็นค่าศูนย์สำหรับประเภทอื่น ๆ ทั้งหมด
ในการกำหนดตัวแปรที่ไม่ได้พิมพ์เพียงแค่ประกาศตัวแปรและกำหนดค่าตามที่แสดงในตัวอย่างนี้ -
HAI 1.2
I HAS A VAR3
VAR3 R "ANYVALUE"
VISIBLE VAR3
BTW Or declare in same line
I HAS A VAR4 ITZ 44
VISIBLE VAR4
KTHXBYE
เมื่อคุณเรียกใช้โปรแกรมข้างต้นคุณจะพบผลลัพธ์ต่อไปนี้ -
sh-
4.3$ lci main.lo
ANYVALUE
44
บูลีน (TROOFS)
ใน LOLCODE ค่าบูลีนมีสองประเภท BOOLEAN โดยทั่วไปมีสองค่า - จริงและเท็จ แต่ใน LOLCODE บูลีนเรียกว่า TROOF และค่าจริง / เท็จเรียกว่า WIN / FAIL ตามลำดับ ค่าที่ไม่ได้กำหนดค่าเริ่มต้นทั้งหมดเช่นสตริงว่าง ("") หรืออาร์เรย์ว่างทั้งหมดจะส่งเป็น FAIL ค่าเริ่มต้นอื่น ๆ ทั้งหมดประเมินเป็น WIN
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
VISIBLE VAR3
KTHXBYE
คุณสามารถดูผลลัพธ์ต่อไปนี้เมื่อคุณรันโค้ดด้านบน -
sh-4.3$ lci main.lo
FAIL
ประเภทตัวเลข (NUMBR)
ใน LOLCODE NUMBR ย่อมาจากจำนวนเต็ม ลำดับของตัวเลขใด ๆ ถือเป็น NUMBR เว้นแต่จะมีทศนิยมปรากฏที่ใดก็ได้ระหว่างลำดับ ในการทำให้จำนวนใด ๆ เป็นลบอาจนำหน้าด้วยยัติภังค์ (-) ซึ่งหมายถึงจำนวนลบ
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A NUMBR
VISIBLE VAR3
KTHXBYE
โค้ดด้านบนจะแสดงผลลัพธ์ต่อไปนี้เมื่อคุณเรียกใช้
sh-
4.3$ lci main.lo
0
เช่นเดียวกับ NUMBR LOLCODE มีข้อมูลประเภทอื่นซึ่งแสดงถึงทศนิยมหรือทศนิยมในภาษาโปรแกรมต่างๆ ใน LOLCODE NUMBAR คือทศนิยมที่มีทศนิยมหนึ่งตำแหน่ง การแคสต์ NUMBAR เป็น NUMBR จะตัดทอนส่วนทศนิยมของตัวเลขทศนิยมและส่งกลับเป็น NUMBR โดยไม่มีจุดทศนิยม
สตริง (YARN)
ใน LOLCODE ค่าที่มีสตริงคือสตริงลิเทอรัล (YARN) ควรเริ่มต้นและลงท้ายด้วยเครื่องหมายคำพูดคู่ ("")
อะไรก็ได้ที่เขียนไว้ในสตริงเช่นเว้นวรรคลูกน้ำเครื่องหมายเต็มเครื่องหมายอัศเจรีย์หรือสัญลักษณ์อื่น ๆ สตริงที่ไม่มีเครื่องหมายคำพูดเดียวอาจทำให้เกิดข้อผิดพลาด โคลอนถูกใช้เป็นอักขระหลีกใน LOLCODE และค่าใด ๆ ที่ตามหลังเครื่องหมายจุดคู่จะมีความหมายพิเศษ
:) - วงเล็บปิดตามเครื่องหมายจุดคู่แทนขึ้นบรรทัดใหม่ (\ n)
:> - วงเล็บมุมปิดตามเครื่องหมายจุดคู่หมายถึงแท็บ (\ t)
:o - ก ‘o’ อักขระหลังเครื่องหมายทวิภาคหมายถึงระฆัง (บี๊บ) (\ g)
:" - A“ ตามหลังเครื่องหมายจุดคู่หมายถึงเครื่องหมายอัญประกาศคู่ตามตัวอักษร (")
:: - เครื่องหมายจุดคู่ตามเครื่องหมายจุดคู่หมายถึงเครื่องหมายทวิภาค (:)
ตัวอย่าง
HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
VISIBLE VAR3
KTHXBYE
รหัสที่ให้ไว้ข้างต้นสร้างผลลัพธ์ต่อไปนี้เมื่อดำเนินการ -
sh-
4.3$ lci main.lo
XYZ
BUKKIT
ประเภทนี้แสดงถึงอาร์เรย์ มีชื่อสล็อตซึ่งสามารถมีตัวแปรหรือฟังก์ชันได้ สามารถประกาศ BUKKIT ได้ดังนี้ -
BTW declaration of the BUKKIT
I HAS A [object] ITZ A BUKKIT BTW creating a variable in a slots
[object] HAS A [var] ITZ [value] BTW creating a function inside the BUKKIT
HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
[function code]
IF U SAY SO
ฟังก์ชันภายใน BUKKIT ยังสามารถเข้าถึงตัวแปรและฟังก์ชันอื่น ๆ ของ BUKKIT ได้โดยใช้ ME'Z [var] หรือ ME IZ [ชื่อฟังก์ชัน] (YR [อาร์กิวเมนต์ 1] (AN YR [อาร์กิวเมนต์ 2] (AN YR [อาร์กิวเมนต์ 3] ... ))) MKAY
ตัวอย่าง
HAI 1.2
I HAS A VAR6 ITZ A BUKKIT
BTW DECLARING AN ARRAY
VAR6 HAS A VAR7 ITZ "DOGE"
BTW VAR7 IS A STRING VARIABLE THAT IS INSERTED INTO ARRAY VAR6
VISIBLE VAR6'Z VAR7
BTW GET THE ELEMENT OF ARRAY
KTHXBYE
นี่คือผลลัพธ์ที่คุณจะพบเมื่อคุณเรียกใช้รหัสที่ระบุด้านบน -
sh-
4.3$ lci main.lo
DOGE
ตัวดำเนินการมีบทบาทสำคัญในการดำเนินการต่างๆกับตัวแปร บทนี้จะนำเสนอโอเปอเรเตอร์ต่างๆใน LOLCODE และการใช้งาน
ตัวดำเนินการ
ตัวดำเนินการทางคณิตศาสตร์ขึ้นอยู่กับสัญกรณ์นำหน้าเช่นสัญกรณ์ที่มาก่อนตัวถูกดำเนินการ เมื่อตัวดำเนินการทั้งหมดทราบจำนวนอาร์กิวเมนต์หรือตัวถูกดำเนินการแล้วจึงไม่จำเป็นต้องมีเครื่องหมายการจัดกลุ่ม ในกรณีที่ตัวดำเนินการไม่มีอาร์กิวเมนต์หรือตัวถูกดำเนินการคงที่การดำเนินการจะปิดด้วย MKAY
ไม่สามารถใช้ MKAY ได้หากตรงกับส่วนท้ายของคำสั่ง ในกรณีเช่นนี้ควรใช้คีย์เวิร์ด EOL ในการใช้ตัวดำเนินการทางคณิตศาสตร์ที่เป็นเอกภาพให้ใช้ไวยากรณ์ต่อไปนี้ -
<operator> <expression>
คีย์เวิร์ด AN สามารถเลือกใช้เพื่อแยกอาร์กิวเมนต์และใช้การดำเนินการเดียวกับตัวถูกดำเนินการมากกว่าหนึ่งตัวได้ดังนั้นนิพจน์ตัวดำเนินการไบนารีจึงมีไวยากรณ์ต่อไปนี้ -
<operator> <expression1> AN <expression2>
นิพจน์ใด ๆ ที่มีตัวดำเนินการที่มีอาร์กิวเมนต์จำนวนไม่ จำกัด สามารถแสดงด้วยไวยากรณ์ต่อไปนี้ -
<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY
คณิตศาสตร์
ต่อไปนี้คือการดำเนินการทางคณิตศาสตร์พื้นฐานใน LOLCODE -
SUM OF <a> AN <b> BTW This is a plus + operator
DIFF OF <a> AN <n> BTW This is a minus - operator
PRODUKT OF <a> AN <n> BTW This is a multiply operator *
QUOSHUNT OF <a> AN <n> BTW This is a divide operator
MOD OF <a> AN <n> BTW This is a modulo operator
BIGGR OF <a> AN <n> BTW This is a max operator
SMALLR OF <a> AN <n> BTW This is a min operator
<a> และ <b> แต่ละนิพจน์สามารถเป็นนิพจน์เฉพาะในข้างต้นได้ดังนั้นตัวดำเนินการทางคณิตศาสตร์จึงสามารถซ้อนและจัดกลุ่มได้โดยไม่มีกำหนด
คณิตศาสตร์จะดำเนินการโดยพิจารณาว่าอาร์กิวเมนต์เป็นคณิตศาสตร์จำนวนเต็มต่อหน้า NUMBR สองรายการ แต่ถ้านิพจน์ใดนิพจน์เป็น NUMBAR การดำเนินการจะถือว่าเป็นการดำเนินการแบบทศนิยม
ตัวอย่าง
HAI 1.2
I HAS A m ITZ 4
I HAS A n ITZ 2
VISIBLE SUM OF m AN n BTW +
VISIBLE DIFF OF m AN n BTW -
VISIBLE PRODUKT OF m AN n BTW *
VISIBLE QUOSHUNT OF m AN n BTW /
VISIBLE MOD OF m AN n BTW modulo
VISIBLE BIGGR OF m AN n BTW max
VISIBLE SMALLR OF m AN n BTW min
KTHXBYE
โค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้เมื่อคุณเรียกใช้ -
sh-
4.3$ lci main.lo
6
2
8
2
0
4
2
ประเด็นสำคัญ -
พิจารณาประเด็นสำคัญต่อไปนี้ที่เกี่ยวข้องกับการทำงานกับตัวดำเนินการทางคณิตศาสตร์ใน LOLCODE−
หากอาร์กิวเมนต์หนึ่งหรือทั้งสองอาร์กิวเมนต์ในนิพจน์เป็น YARN จะถือว่าอาร์กิวเมนต์เป็น NUMBAR
หากอาร์กิวเมนต์ใด ๆ ไม่สามารถโยนภายในเป็นประเภทตัวเลขได้อย่างปลอดภัยก็จะล้มเหลวด้วยข้อผิดพลาด
บูลีน
ตัวดำเนินการบูลีนถูกนำไปใช้กับค่าที่อาจเป็นจริงหรือเท็จ ตัวดำเนินการบูลีนที่ทำงานกับ TROOF มีดังต่อไปนี้ -
BOTH OF <m> AN <n> BTW its and operation: WIN if m = WIN and n = WIN
EITHER OF <m> AN <n> BTW its or operation: FAIL iff m = FAIL, n = FAIL
WON OF <m> AN <n> BTW its xor operation: FAIL if m = n
NOT <m> BTW its an unary negation: WIN if m = FAIL
ALL OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply AND
ANY OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply OR.
โปรดทราบว่า <m> และ <n> ในไวยากรณ์ของนิพจน์ด้านบนจะถูกแคสต์เป็นค่า TROOF โดยอัตโนมัติหากยังไม่มีค่า TROOF
การเปรียบเทียบ
เมื่อคุณต้องการเปรียบเทียบตัวถูกดำเนินการสองตัวขึ้นไปใน LOLCODE คุณสามารถทำได้ด้วยวิธีใดวิธีหนึ่งดังต่อไปนี้ -
วิธีที่ 1
คุณสามารถเปรียบเทียบตัวถูกดำเนินการไบนารีสองตัวโดยใช้ตัวดำเนินการความเท่าเทียมกัน ไวยากรณ์ดังแสดงด้านล่าง -
BOTH SAEM <m> AN <n> BTW this will return WIN if m is equal to n
DIFFRINT <m> AN <n> BTW this will return WIN if m is not equal to n
วิธีที่ 2
คุณสามารถเปรียบเทียบได้ว่าค่าทั้งสองเป็นประเภท NUMBR หรือไม่ โปรดจำไว้ว่าหากค่าใดค่าหนึ่งเป็น NUMBAR จะเปรียบเทียบเป็นค่าทศนิยม
วิธีที่ 3
คุณยังสามารถทำการเปรียบเทียบโดยใช้ตัวดำเนินการขั้นต่ำและสูงสุด ไวยากรณ์ดังแสดงด้านล่าง -
BOTH SAEM <m> AN BIGGR OF <m> AN <n>
BOTH SAEM <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN BIGGR OF <m> AN <n>
Example
HAI 1.2
I HAS A VAR11 ITZ 7
BOTH SAEM VAR11 SMALLR OF VAR11 AN 8, O RLY?
YA RLY
VISIBLE "TRUE"
NO WAI
VISIBLE "FALSE"
OIC
KTHXBYE
คุณสามารถดูผลลัพธ์ต่อไปนี้เมื่อคุณรันโค้ดที่กำหนด -
sh-
4.3$ lci main.lo
TRUE
การเชื่อมโยงค่านิยม
LOLCODE ช่วยให้คุณสามารถเชื่อมต่อ YARN จำนวนอนันต์ได้อย่างชัดเจนโดยใช้ตัวดำเนินการ SMOOSH ... MKAY สำหรับการเชื่อมต่อกันสามารถแยกอาร์กิวเมนต์หลายตัวด้วยAN ตัวดำเนินการ
ตัวอย่าง
HAI 1.2
I HAS A VAR1 ITZ A YARN
VAR1 R "TRUE"
I HAS A VAR2 ITZ A YARN
VAR2 R "ANOTHER TRUE"
I HAS A VAR3 ITZ A YARN
VAR3 R "ONE MORE TRUE"
VISIBLE SMOOSH VAR1 " " VAR3 " " VAR2 MKAY
KTHXBYE
รหัสที่ระบุข้างต้นจะให้ผลลัพธ์ต่อไปนี้เมื่อดำเนินการ -
sh-
4.3$ lci main.lo
TRUE ONE MORE TRUE ANOTHER TRUE
ประเภทหล่อ
ตัวดำเนินการที่ทำงานกับบางประเภทโดยปริยายหรือแปลงค่าของประเภทหนึ่งเป็นประเภทอื่นอย่างปลอดภัย หากไม่สามารถแปลงค่าเป็นประเภทอื่นได้อย่างปลอดภัยจะทำให้เกิดข้อผิดพลาด
ค่าของนิพจน์อาจถูกโยนอย่างชัดเจนหรือแปลงเป็นประเภทอื่นด้วยตัวดำเนินการ MAEK แบบไบนารี ไวยากรณ์ของ MAEK Operator คือ -
MAEK <expression> A <type>
โดยที่ <type> สามารถเป็นหนึ่งใน TROOF, YARN, NUMBR, NUMBAR หรือ NOOB
ในการโยนตัวแปรเป็นประเภทอื่นอย่างชัดเจนสามารถใช้คำสั่งการกำหนดปกติกับตัวดำเนินการ MAEK หรืออาจใช้คำสั่งการกำหนดค่าการคัดเลือกดังนี้ -
<Any_variable> IS NOW A <type> BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>
ตัวอย่าง
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
โค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้
sh-4.3$ lci main.lo
111.00033
111.00033
บทนี้จะอธิบายวิธีการป้อนค่าผ่านเทอร์มินัล LOLCODE และวิธีการส่งออกไปยังเทอร์มินัล
I / O จาก Terminal
คุณสามารถใช้คีย์เวิร์ด VISIBLE เพื่อพิมพ์บางสิ่งใน LOLCODE VISIBLE เป็นฟังก์ชันที่สามารถรับอักขระจำนวนไม่ จำกัด เป็นอินพุตและพิมพ์ทั้งหมดพร้อมกันโดยการเชื่อมต่อภายในและแปลงเป็นสตริงหรือ YARN
ฟังก์ชัน VISIBLE จะสิ้นสุดหรือสิ้นสุดโดยตัวคั่นซึ่งอาจเป็นปลายบรรทัดหรือลูกน้ำ
เอาต์พุตจะถูกยกเลิกโดยอัตโนมัติโดยคอมไพลเลอร์ด้วยการส่งคืนแคร่ หากโทเค็นสุดท้ายสิ้นสุดลงด้วยสัญลักษณ์อัศเจรีย์ (!) สัญลักษณ์นี้จะถูกแทนที่ด้วยสัญลักษณ์นี้
VISIBLE <any_expression> [<any_expression> ...][!]
โปรดทราบว่าใน LOLCODE ปัจจุบันยังไม่มีมาตรฐานที่กำหนดไว้สำหรับการพิมพ์ข้อมูลบางส่วนลงในไฟล์
ในการรับข้อมูลจากผู้ใช้คำหลักที่ใช้คือ GIMMEH เป็นฟังก์ชันที่สามารถรับตัวแปรจำนวนเท่าใดก็ได้เป็นอินพุต ใช้ YARN เป็นอินพุตและเก็บค่าในตัวแปรที่กำหนด
GIMMEH <any_variable>
ตัวอย่าง
HAI 1.2
I HAS A VAR ITZ A YARN BTW DECLARE A VARIABLE FOR LATER USE
VISIBLE "TYPE SOMETHING AND ENTER"
GIMMEH VAR BTW GET INPUT (STRING) INTO VARIABLE
VISIBLE VAR
KTHXBYE
เมื่อเรียกใช้รหัสนี้ระบบจะขอให้คุณป้อนตัวเลขจากนั้นพิมพ์หมายเลขกลับในบรรทัดถัดไปโดยอัตโนมัติ เมื่อคุณเรียกใช้รหัสนี้จะพิมพ์ผลลัพธ์ต่อไปนี้ -
sh-
4.3$ lci main.lo
TYPE SOMETHING AND ENTER
67
67
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
ลูปใช้ในภาษาโปรแกรมเพื่อดำเนินการชุดคำสั่งหลาย ๆ ครั้ง ตัวอย่างเช่นหากคุณต้องการพิมพ์ตัวเลข 5 เป็นเวลา 5 ครั้งแทนที่จะเขียนไฟล์VISIBLE “5” คำสั่งห้าครั้งคุณสามารถเรียกใช้ลูปด้วย single VISIBLE “5” คำสั่งห้าครั้ง
ลูปแบบธรรมดาจะแสดงด้วย IM IN YR <label> และ IM OUTTA YR <label> ลูปที่กำหนดด้วยวิธีนี้เป็นลูปที่ไม่มีที่สิ้นสุดและควรสิ้นสุดด้วยคำสั่งแบ่ง GTFO
การวนซ้ำมีโครงสร้างดังนี้ -
IM IN YR <label> <any_operation> YR <any_variable> [TIL|WILE <expression>]
<code block to execute inside the loop multiple times>
IM OUTTA YR <label>
โปรดทราบว่าภายในตัวฟังก์ชันสามารถใช้ UPPIN (เพิ่มขึ้นทีละหนึ่ง) NERFIN (ลดลงทีละหนึ่ง) หรือฟังก์ชันยูนารีใด ๆ ก็ได้
คีย์เวิร์ด TIL จะคำนวณนิพจน์เป็น TROOF: หากประเมินว่า FAIL ลูปจะดำเนินต่อไปอีกครั้งหากประเมินว่าเป็น WIN การดำเนินการลูปจะหยุดและดำเนินต่อหลังจากคำสั่ง IM OUTTA YR ที่ตรงกัน
คีย์เวิร์ด WILE ตรงข้ามกับคีย์เวิร์ด TIL หากนิพจน์เป็น WIN การดำเนินการจะดำเนินต่อไปมิฉะนั้นลูปจะออก
ตัวอย่าง
HAI 1.2
I HAS A VAR ITZ 0
IM IN YR LOOPY UPPIN YR VAR TIL BOTH SAEM VAR AN 10
VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOPY
KTHXBYE
เมื่อโค้ดด้านบนถูกคอมไพเลอร์บนคอมไพเลอร์ LOLCODE ใด ๆ หรือบนพื้นที่เข้ารหัสออนไลน์ของเราสิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
sh-
4.3$ lci main.lo
1
2
3
4
5
6
7
8
9
10
ฟังก์ชันมีประโยชน์ในการเขียนโปรแกรมเนื่องจากช่วยลดเวลาและความพยายามในการเขียนโค้ดซ้ำแล้วซ้ำอีก รหัสฟังก์ชันที่เขียนอย่างดีมีความสามารถในการใช้ซ้ำได้สูง บทนี้อธิบายวิธีการเขียนและทำงานกับฟังก์ชันใน LOLCODE
ความหมายของฟังก์ชัน
ฟังก์ชันคือชุดของคำสั่งที่ดำเนินการทั้งหมดพร้อมกันโดยเรียกใช้ฟังก์ชันนั้น ใน LOLCODE คำจำกัดความของฟังก์ชันจะเริ่มต้นด้วยคีย์เวิร์ด“ HOW IZ I” และคีย์เวิร์ดปิดคือ“ IF U SAY SO”
ไวยากรณ์สำหรับการเขียนฟังก์ชันใน LOLCODE คือ −
HOW IZ I <function name> [YR <parameter/argument> [AN YR <other _arguments..> …]]
<code block to execute / Set of statements to execute>
IF U SAY SO
จุดสำคัญ
พิจารณาประเด็นสำคัญต่อไปนี้เมื่อคุณกำหนดฟังก์ชัน LOLCODE -
ใน LOLCODE ฟังก์ชันสามารถรับอาร์กิวเมนต์จำนวนหนึ่งที่แน่นอนเป็นอินพุตได้
อาร์กิวเมนต์หรือพารามิเตอร์คือตัวระบุที่กลายเป็นตัวแปรของฟังก์ชัน
ฟังก์ชันใน LOLCODE ไม่สามารถเข้าถึงค่าอื่น ๆ นอกเหนือจากค่าที่ส่งให้เป็นอาร์กิวเมนต์
การส่งคืนค่าจากฟังก์ชัน
Return in coding หมายถึงสิ่งที่ให้กลับมา ในการเขียนโปรแกรมฟังก์ชันสามารถคืนค่าบางส่วนให้กับโปรแกรมเมื่อการดำเนินการเสร็จสิ้น ใน LOLCODE ฟังก์ชันจะส่งคืนค่าที่แตกต่างกันตามที่อธิบายด้านล่าง -
FOUND YR <any_expression> ส่งคืนค่าของนิพจน์เมื่อดำเนินการบล็อกฟังก์ชันอย่างสมบูรณ์
GTFO ไม่ส่งคืนค่า (NOOB) ซึ่งคล้ายกับ return 0 ในภาษาโปรแกรมอื่น ๆ เช่น C และ Java
หากไม่พบคำสั่งส่งคืนอื่น ๆ IF U SAY SO จะถูกเรียกใช้งานและค่าในตัวแปร IT จะถูกส่งกลับ
ฟังก์ชั่นการโทร
ฟังก์ชันถูกกำหนดไว้ในเนื้อหาของโปรแกรมและต่อมาจะถูกเรียกให้ดำเนินการ ฟังก์ชันที่รับอาร์กิวเมนต์ตามจำนวนที่กำหนดเรียกว่าดังแสดงด้านล่าง -
I IZ <function_name> [YR <expression_One> [AN YR <expression_Two>
[AN YR <expression_Three> ...]]] MKAY
ในขณะที่เรียกใช้ฟังก์ชันนิพจน์จะถูกสร้างขึ้นโดยชื่อฟังก์ชันตามด้วยจำนวนอาร์กิวเมนต์ที่ฟังก์ชันจะยอมรับ อาร์กิวเมนต์เหล่านี้อาจเป็นตัวแปรง่ายๆหรือนิพจน์ใดก็ได้ หากฟังก์ชันยอมรับนิพจน์ใด ๆ แทนที่จะเป็นค่าธรรมดาระบบจะคำนวณค่าของนิพจน์ก่อนที่ฟังก์ชันจะถูกเรียกใช้
โปรดจำไว้ว่าจำนวนอาร์กิวเมนต์ที่ฟังก์ชันจะยอมรับควรกำหนดไว้ในนิยามของฟังก์ชัน
ตัวอย่าง
HAI
HOW DUZ I MAINUMBA
I HAS A NUMBA
GIMMEH NUMBA
FOUND YR NUMBA
IF U SAY SO
VISIBLE MAINUMBA
KTHXBYE
เมื่อคุณเรียกใช้โค้ดด้านบนระบบจะขออินพุตจากนั้นเมื่อคุณส่งอินพุตคุณจะเห็นผลลัพธ์เช่นเดียวกัน เช่นถ้าเราใส่ 55 ก็จะพิมพ์ 55
ตัวอย่าง
HAI 1.2
HOW IZ I MULTIPLY YR FIRSTOPERANT AN YR SECONDOPERANT
FOUND YR PRODUKT OF FIRSTOPERANT AN SECONDOPERANT
IF U SAY SO
VISIBLE I IZ MULTIPLY YR 2 AN YR 3
KTHXBYE
ฟังก์ชันข้างต้นที่ทำการคูณของตัวถูกดำเนินการอินพุตจะพิมพ์ผลลัพธ์ต่อไปนี้เมื่อคุณเรียกใช้
sh-
4.3$ lci main.lo
6
ตัวอย่าง
HAI 1.2
I HAS A STRINGARRAY ITZ A BUKKIT
STRINGARRAY HAS A VAR17 ITZ "OBJECT1"
STRINGARRAY HAS A VAR18 ITZ "OBJECT2"
HOW IZ STRINGARRAY ACCESS YR VARIABLE
FOUND YR STRINGARRAY'Z SRS VARIABLE
IF U SAY SO
I HAS A STRING ITZ "VAR17"
VISIBLE STRINGARRAY IZ ACCESS YR STRING MKAY
KTHXBYE
ผลลัพธ์ที่โค้ดด้านบนจะสร้างคือ -
sh-
4.3$ lci main.lo
OBJECT1
การจัดการข้อยกเว้นเป็นหนึ่งในกลไกที่มีประสิทธิภาพในการจัดการข้อผิดพลาดรันไทม์เพื่อให้สามารถรักษาขั้นตอนปกติของแอปพลิเคชันได้ LOLCODE ไม่มีการรองรับการจัดการข้อยกเว้นมากมายเหมือนกับภาษาโปรแกรมอื่น ๆ คล้ายกับบล็อก Try-Catch ในภาษาอื่น ๆ LOLCODE มี PLZ-block
ตัวอย่างเช่นหากคุณต้องการเปิดไฟล์ที่อาจมีหรือไม่มีอยู่ให้ใช้ -
PLZ OPEN FILE "filename.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHX
รหัสที่อาจทำให้เกิดข้อยกเว้นถูกเขียนในบล็อก PLZ และข้อยกเว้นจะถูกจัดการในบล็อก O NOES ที่นี่คีย์เวิร์ด INVISIBLE จะส่งข้อความภายในไปยังดีบักเกอร์
โปรดทราบว่าเนื่องจาก LOLCODE ไม่ได้รับการบำรุงรักษาอย่างสม่ำเสมอจึงไม่มีการอัปเดตเพิ่มเติมสำหรับการจัดการข้อยกเว้น LOLCODE และคุณสมบัติอื่น ๆ อีกมากมาย
บทก่อนหน้านี้อธิบายการเขียนโปรแกรมใน LOLCODE ในบทนี้คุณจะได้เรียนรู้ตัวอย่างบางส่วนที่ให้คุณเขียนโค้ดในระดับขั้นสูงใน LOLCODE
ตัวอย่างที่ 1: โปรแกรมคำนวณกำลังของตัวเลข
ในตัวอย่างนี้คุณจะพบรหัสเพื่อคำนวณกำลังของตัวเลขอินพุต ตัวอย่างเช่น 2 ยกกำลัง 4 เท่ากับ 16
HAI 1.2
HOW IZ I POWERTWO YR NUM
BTW RETURN 1 IF 2 TO POWER OF 0
BOTH SAEM NUM AN 0, O RLY?
YA RLY, FOUND YR 1
OIC
BTW CALCULATE 2 TO POWER OF NUM
I HAS A INDEX ITZ 0
I HAS A TOTAL ITZ 1
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX AN NUM
TOTAL R PRODUKT OF TOTAL AN 2
IM OUTTA YR LOOP
FOUND YR TOTAL
IF U SAY SO
BTW OUTPUT: 8
VISIBLE I IZ POWERTWO YR 4 MKAY
KTHXBYE
รหัสด้านบนจะพิมพ์ผลลัพธ์ต่อไปนี้เมื่อทำงานสำเร็จ -
sh-
4.3$ lci main.lo
16
ตัวอย่างที่ 2: โปรแกรมสร้างอาร์เรย์
ตัวอย่างนี้แสดงรหัสสำหรับการสร้างอาร์เรย์ที่มีองค์ประกอบ 5 รายการและแต่ละองค์ประกอบมีค่า 10
HAI 1.3
OBTW
CREATES A ONE DIMENSIONAL ARRAY WITH N ELEMENTS, EACH IS A 0
TLDR
HOW IZ I MAKEMATRIX YR N
I HAS A MATRIX ITZ A BUKKIT
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
MATRIX HAS A SRS INDEX ITZ 10
IM OUTTA YR LOOP
FOUND YR MATRIX
IF U SAY SO
I HAS A N ITZ 5
I HAS A MATRIX ITZ A BUKKIT
MATRIX R I IZ MAKEMATRIX YR N MKAY
BTW PRINTS THE CONTENTS OF THE ARRAY
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
VISIBLE MATRIX'Z SRS INDEX
IM OUTTA YR LOOP
KTHXBYE
คุณสามารถดูผลลัพธ์ต่อไปนี้เมื่อคุณรันโค้ดด้านบน -
sh-4.3$ lci main.lo
10
10
10
10
10
ตัวอย่างที่ 3: โปรแกรมคำนวณแฟกทอเรียลของตัวเลข
โปรแกรมนี้แสดงรหัสเพื่อคำนวณแฟกทอเรียลของหมายเลขอินพุต
HAI 1.3
HOW IZ I FACTORIAL YR N
BOTH SAEM N AN 0
O RLY?
YA RLY, FOUND YR 1
NO WAI
FOUND YR PRODUKT OF N AN I IZ FACTORIAL YR DIFF OF N AN 1
MKAY
OIC
IF U SAY SO
VISIBLE I IZ FACTORIAL YR 6 MKAY
KTHXBYE
โปรแกรมด้านบนจะพิมพ์แฟกทอเรียลของหมายเลข 6 และคุณจะเห็นผลลัพธ์ดังที่แสดงด้านล่าง -
sh-
4.3$ lci main.lo
720
ตัวอย่างที่ 4: โปรแกรมออกแบบเครื่องคิดเลข
คุณสามารถออกแบบเครื่องคิดเลขเพื่อดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานโดยใช้การเขียนโปรแกรม LOLCODE สังเกตรหัสที่ระบุด้านล่าง -
HAI 1.2
I HAS A V1
I HAS A V2
I HAS A CHOICE
VISIBLE "VALUE1"
GIMMEH V1
VISIBLE "VALUE2"
GIMMEH V2VISIBLE "Choose Operation? + - * /"
GIMMEH CHOICE CHOICE, WTF?
OMG "+"
VISIBLE SUM OF V1 AN V2
GTFO
OMG "-"
VISIBLE DIFF OF V1 AN V2
GTFO
OMG "*"
VISIBLE PRODUKT OF V1 AN V2
GTFO
OMG "/"
VISIBLE QUOSHUNT OF V1 AN V2
GTFO
OMGWTF
VISIBLE "CHOOSE SOME OPERATION"
OIC
KTHXBYE
เมื่อเรารันโปรแกรมข้างต้นด้วยอินพุตต่อไปนี้ -
3
4
+
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -
VALUE1
VALUE2
Choose Operation? + - * /
7