English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
العلامة هي رمز خاص يستخدم لتخبر المترجم تنفيذ عملية حسابية أو منطقية معينة. توفر Lua أنواعًا عديدة من العلامات:
علامات حسابية
علاقات حسابية
逻辑运算符
عمليات أخرى
الجدول أدناه يعرض العلامات الحسابية الشائعة في لغة Lua، مع تعيين قيمة A إلى 10 وقيمة B إلى 20:
المعادلة | وصف | مثال |
---|---|---|
+ | الجمع | A + B الناتج هو 30 |
- | الطرح | A - B الناتج هو -10 |
* | الضرب | A * B الناتج هو 200 |
/ | القسمة | B / A الناتج هو 2 |
% | التقسيم | B % A الناتج هو 0 |
^ | الجمع بين القوة | A^2 الناتج هو 100 |
- | الناقص | -A الناتج هو -10 |
يمكننا من خلال المثال التالي فهم تطبيق علامات الحساب بشكل أفضل:
a = 21 b = 10 c = a + b print("السطر 1 - قيمة c هي ", c) c = a - b print("السطر 2 - قيمة c هي ", c) c = a * b print("السطر 3 - قيمة c هي ", c) c = a / b print("السطر 4 - قيمة c هي ", c) c = a % b print("السطر 5 - قيمة c هي ", c) c = a^2 print("السطر 6 - قيمة c هي ", c) c = -a print("السطر 7 - قيمة c هي ", c)
نتائج تنفيذ البرنامج أعلاه هي:
السطر 1 - قيمة c هي 31 السطر 2 - قيمة c هي 11 السطر 3 - قيمة c هي 210 السطر 4 - قيمة c هي 2.1 السطر 5 - قيمة c هي 1 السطر 6 - قيمة c هي 441 السطر 7 - قيمة c هي -21
الجدول أدناه يعرض العلاقات الحسابية الشائعة في لغة Lua، مع تعيين قيمة A إلى 10 وقيمة B إلى 20:
المعادلة | وصف | مثال |
---|---|---|
== | متساوي، تحقق مما إذا كانت القيمتين متساويتين، وإذا كانت متساويتين أعد الصحيح، وإلا أعد الخطأ | (A == B) هو خطأ |
~= | غير متساوي، تحقق مما إذا كانت القيمتين متساويتين، وإذا لم تكن متساويتين أعد الصحيح، وإلا أعد الخطأ | (A ~= B) هو صحيح |
> | أكبر، إذا كان القيمة على اليسار أكبر من القيمة على اليمين، أعد الصحيح، وإلا أعد الخطأ | (A > B) هو خطأ |
< | أصغر، إذا كان القيمة على اليسار أكبر من القيمة على اليمين، أعد الصحيح، وإلا أعد الخطأ | (A < B) 为 true。 |
>= | 大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false | (A >= B) 返回 false。 |
<= | 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false | (A <= B) 返回 true。 |
我们可以通过以下示例来更加透彻的理解关系运算符的应用:
a = 21 b = 10 if( a == b ) then print("Line 1 - a 等于 b" ) else print("Line 1 - a 不等于 b" ) fin if( a ~= b ) then print("Line 2 - a 不等于 b" ) else print("Line 2 - a 等于 b" ) fin if ( a < b ) then print("Line 3 - a 小于 b" ) else print("Line 3 - a 大于等于 b" ) fin if ( a > b ) then print("Line 4 - a 大于 b" ) else print("Line 5 - a 小于等于 b" ) fin -- تعديل قيم a و b a = 5 b = 20 if ( a <= b ) then print("Line 5 - a 小于等于 b" ) fin if ( b >= a ) then print("Line 6 - b 大于等于 a" ) fin
نتائج تنفيذ البرنامج أعلاه هي:
Line 1 - a 不等于 b Line 2 - a 不等于 b Line 3 - a 大于等于 b Line 4 - a 大于 b Line 5 - a 小于等于 b Line 6 - b 大于等于 a
下表列出了 Lua 语言中的常用逻辑运算符,设定 A 的值为 true,B 的值为 false:
المعادلة | وصف | مثال |
---|---|---|
و | 逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。 | (A and B) 为 false。 |
أو | 逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。 | (A or B) 为 true。 |
not | 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。 | not(A and B) 为 true。 |
我们可以通过以下示例来更加透彻的理解逻辑运算符的应用:
a = true b = true إذا (a و b) then print("a و b - الشروط هي true") fin if ( a or b ) then print("a or b - 条件为 true" ) fin print("---------خط الفصل---------") -- تعديل قيم a و b a = false b = true إذا (a و b) then print("a و b - الشروط هي true") else print("a و b - الشروط هي false") fin إذا (لا (a و b)) then print("لا (a و b) - الشروط هي true") else print("لا (a و b) - الشروط هي false") fin
نتائج تنفيذ البرنامج أعلاه هي:
a و b - الشروط هي true a أو b - الشروط هي true ---------خط الفصل--------- a و b - الشروط هي false لا (a و b) - الشروط هي true
في الجدول أدناه يظهر عمليات الاتصال في لغة Lua وكذلك عمليات الحساب على طول النصوص أو الجداول:
المعادلة | وصف | مثال |
---|---|---|
.. | ربط كلمتين | a..b، حيث a هو "Hello "، b هو "World"، الناتج هو "Hello World". |
# | عمليات الحساب الأحادية، تعود إلى طول النص أو الجدول. | #"Hello" يعود إلى 5 |
يمكننا من خلال المثال التالي أن نفهم بشكل أفضل تطبيق عمليات الاتصال والحسابات على طول الجداول أو الأنماط النصية:
a = "Hello " b = "World" print("ربط النصوص a و b ", a..b) print("طول النص b ",#b) print("طول النص Test ",#"Test") print("طول عنوان موقع دروس الأساس ",#"ar.oldtoolbag.com")
نتائج تنفيذ البرنامج أعلاه هي:
ربط النصوص a و b Hello World طول النص b 5 طول النص Test 4 طول عنوان موقع دروس الأساس 14
من الأعلى إلى الأدنى
^ لا * / % + - .. < > <= >= ~= == و أو
除了 ^ 和 .. 之外的所有二元运算符都是左连接的。
a+i < b/2+1 -> (a+i) < ((b/2)+1) 5 + x^2 * 8 <--> 5 + ((x^2) * 8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z)
يمكننا من خلال الأمثلة التالية فهمًا أفضل لمرتبة الأولويات لعناصر الحساب بلغة Lua:
a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d; -- (30 * 15) / 5 print("(a + b) * c / d القيمة الحسابية هي: ", e) e = ((a + b) * c) / d; -- (30 * 15) / 5 print("((a + b) * c) / d القيمة الحسابية هي: ", e) e = (a + b) * (c / d); -- (30) * (15/5) print("(a + b) * (c / d) القيمة الحسابية هي: ", e) e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d القيمة الحسابية هي: ", e)
نتائج تنفيذ البرنامج أعلاه هي:
(a + b) * c / d القيمة الحسابية هي: : 90.0 ((a + b) * c) / d القيمة الحسابية هي: : 90.0 (a + b) * (c / d) القيمة الحسابية هي: : 90.0 a + (b * c) / d القيمة الحسابية هي: : 50.0