Lolcode - Toán tử
Các toán tử đóng một vai trò quan trọng để thực hiện các hoạt động khác nhau trên các biến. Chương này cung cấp cho bạn các toán tử khác nhau trong LOLCODE và cách sử dụng chúng.
Người điều hành
Các toán tử toán học phụ thuộc vào một ký hiệu tiền tố tức là ký hiệu đứng trước toán hạng. Khi tất cả các toán tử có số đối số hoặc toán hạng đã biết, thì không cần đánh dấu nhóm. Trong trường hợp các toán tử không có các đối số hoặc toán hạng cố định, hoạt động được đóng bằng MKAY.
MKAY có thể không được sử dụng nếu nó trùng với phần cuối của câu lệnh. Trong những trường hợp như vậy, từ khóa EOL nên được sử dụng. Để sử dụng các toán tử toán học một ngôi, hãy sử dụng cú pháp sau:
<operator> <expression>
Từ khóa AN có thể được tùy chọn sử dụng để tách các đối số và áp dụng một phép toán đơn lẻ trên nhiều toán hạng, do đó, biểu thức toán tử nhị phân có cú pháp sau:
<operator> <expression1> AN <expression2>
Bất kỳ biểu thức nào chứa một toán tử với vô số đối số đều có thể được biểu diễn theo cú pháp sau:
<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY
môn Toán
Sau đây là các phép toán cơ bản trong 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> và <b> mỗi bên có thể là các biểu thức duy nhất ở trên, vì vậy các toán tử toán học có thể được lồng vào nhau và nhóm vô hạn.
Phép toán được thực hiện khi coi các đối số là phép toán số nguyên với sự hiện diện của hai CON SỐ, nhưng nếu một trong hai biểu thức là SỐ BẰNG SỐ, thì các phép toán được coi là phép toán dấu phẩy động.
Thí dụ
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
Đoạn mã trên sẽ tạo ra kết quả sau khi bạn chạy nó:
sh-
4.3$ lci main.lo
6
2
8
2
0
4
2
Điểm quan trọng -
Hãy xem xét các điểm quan trọng sau liên quan đến việc làm việc với các toán tử toán học trong LOLCODE−
Nếu một hoặc cả hai đối số trong một biểu thức là YARN, chúng được coi là NUMBAR.
Nếu bất kỳ đối số nào không thể được truyền nội bộ một cách an toàn sang một kiểu số, thì nó không thành công với lỗi
Boolean
Toán tử boolean được áp dụng trên những giá trị có thể đúng hoặc sai. Các toán tử boolean làm việc trên TROOF như sau:
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.
Xin lưu ý rằng <m> và <n> trong cú pháp biểu thức ở trên được tự động chuyển thành giá trị TROOF nếu chúng chưa phải là Giá trị TROOF.
So sánh
Khi bạn muốn so sánh hai hoặc nhiều toán hạng trong LOLCODE, bạn có thể thực hiện theo bất kỳ phương pháp nào sau đây:
Phương pháp 1
Bạn có thể so sánh hai toán hạng nhị phân bằng cách sử dụng toán tử bình đẳng. Cú pháp được hiển thị bên dưới -
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
Phương pháp 2
Bạn có thể so sánh nếu cả hai giá trị đều thuộc loại NUMBR. Hãy nhớ rằng nếu một trong hai giá trị là NUMBAR, thì chúng được so sánh dưới dạng giá trị dấu phẩy động.
Phương pháp 3
Bạn cũng có thể thực hiện so sánh bằng cách sử dụng toán tử tối thiểu và tối đa. Cú pháp được hiển thị bên dưới -
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
Bạn có thể thấy kết quả sau khi thực thi mã đã cho:
sh-
4.3$ lci main.lo
TRUE
Kết hợp các giá trị
LOLCODE cho phép bạn nối một cách rõ ràng số lượng SỢI vô hạn bằng cách sử dụng toán tử SMOOSH… MKAY. Để nối, nhiều đối số có thể được phân tách bằngAN nhà điều hành.
Thí dụ
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
Đoạn mã đã cho ở trên sẽ tạo ra kết quả sau khi thực thi:
sh-
4.3$ lci main.lo
TRUE ONE MORE TRUE ANOTHER TRUE
Loại Đúc
Các toán tử làm việc trên các kiểu cụ thể truyền ngầm hoặc chuyển đổi các giá trị của kiểu này sang kiểu khác một cách an toàn. Nếu giá trị không thể được chuyển đổi một cách an toàn sang kiểu khác, thì nó sẽ dẫn đến lỗi.
Giá trị của một biểu thức có thể được ép kiểu rõ ràng hoặc được chuyển đổi sang một số kiểu khác bằng toán tử MAEK nhị phân. Cú pháp của Toán tử MAEK là -
MAEK <expression> A <type>
trong đó, <type> có thể là một trong TROOF, YARN, NUMBR, NUMBAR hoặc NOOB.
Để ép kiểu một cách rõ ràng một biến sang một số kiểu khác, có thể sử dụng câu lệnh gán thông thường với toán tử MAEK hoặc có thể sử dụng câu lệnh gán kiểu như sau:
<Any_variable> IS NOW A <type> BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>
Thí dụ
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
Đoạn mã trên sẽ tạo ra kết quả sau:
sh-4.3$ lci main.lo
111.00033
111.00033