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