OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

مهمة

على الرغم من أن استخداماته قد لا تكون واضحة على الفور ، إلا أن التعبيرات الحسابية قد تؤدي مهمة. لقد قمنا بمهمة عدة مرات ، وإن كان ذلك في سياق مختلف. في كل مرة نعطي متغيرًا قيمة ، فإننا نقوم بالتخصيص. يمكننا أيضًا القيام بذلك ضمن التعبيرات الحسابية:



[me @ linuxbox ~] $ فو =

[me @ linuxbox ~] $ صدى $ فو


[me @ linuxbox ~] $ إذا ((foo = 5)) ؛ ثم صدى "هذا صحيح" ؛ فاي

هذا صحيح.

[me @ linuxbox ~] $ صدى $ فو

5

[me @ linuxbox ~] $ فو =

[me @ linuxbox ~] $ صدى $ فو


[me @ linuxbox ~] $ إذا ((foo = 5)) ؛ ثم صدى "هذا صحيح" ؛ فاي

هذا صحيح.

[me @ linuxbox ~] $ صدى $ فو

5


في المثال أعلاه ، نقوم أولاً بتعيين قيمة فارغة للمتغير فو وتحقق من أنه فارغ بالفعل. بعد ذلك ، نقوم بإجراء if مع الأمر المركب ((foo = 5

)). تقوم هذه العملية بأمرين مهمين: 1) تعين قيمة 5 للمتغير

foo ، و 2) يتم تقييمه إلى true لأنه تم تعيين قيمة غير صفرية لـ foo.


صورة

ملحوظة: من المهم أن تتذكر المعنى الدقيق لملف = في التعبير أعلاه. واحد = ينفذ مهمة. فو = 5 يقول "اصنع فو يساوي 5 "بينما == يقيم التكافؤ. فو == 5 يقول "لا فو يساوي 5؟ " هذه ميزة شائعة في العديد من لغات البرمجة. في الغلاف ، قد يكون هذا مربكًا بعض الشيء لأن ملف تجربه بالعربي الأمر يقبل ملف = لتكافؤ السلسلة. سبب آخر لاستخدام أكثر حداثة [[]] و (()) أوامر مركبة بدلاً من تجربه بالعربي.


صورة

بالإضافة إلى =, توفر القشرة أيضًا رموزًا تؤدي بعض الإشارات المفيدة جدًا:


الجدول 34-4: عوامل التخصيص


وصف التدوين

وصف التدوين


صورة

المعلمة = قيمنا مهمة بسيطة. يعيّن قيمنا إلى المعلمة.


صورة

المعلمة += قيمنا إضافة. أي ما يعادل المعلمة = المعلمة +

.


صورة

المعلمة -= قيمنا الطرح. أي ما يعادل المعلمة = المعلمة -

.


صورة

المعلمة *= قيمنا عمليه الضرب. أي ما يعادل المعلمة = المعلمة

* .


صورة

المعلمة /= قيمنا تقسيم صحيح. أي ما يعادل المعلمة =

المعلمة / القيمة.


صورة

المعلمة %= قيمنا مودولو. أي ما يعادل المعلمة = المعلمة %

.


صورة

المعلمة++ المتغير اللاحق الزيادة. أي ما يعادل المعلمة =

المعلمة + 1 (مع ذلك ، انظر المناقشة أدناه).


صورة

المعلمة−− متغير بعد التناقص. أي ما يعادل المعلمة =

المعلمة - 1.


صورة

++المعلمة الزيادة المسبقة المتغيرة. أي ما يعادل المعلمة =

المعلمة + 1.


صورة

--المعلمة إنقاص متغير. أي ما يعادل المعلمة =

المعلمة - 1.


صورة


توفر عوامل التخصيص هذه اختصارًا مناسبًا للعديد من المهام الحسابية الشائعة. الفائدة الخاصة هي الزيادة (++) وإنقاص (-−) العوامل التي تزيد أو تنقص قيمة معلماتها بمقدار واحد. هذا النمط من التدوين مأخوذ من لغة البرمجة C وقد تم دمجه في عدد من لغات البرمجة الأخرى ، بما في ذلك سحق.

قد تظهر العوامل إما في مقدمة المعلمة أو في نهايتها. بينما يعمل كلاهما إما على زيادة المعلمة أو إنقاصها بمقدار واحد ، إلا أن هناك فرقًا بسيطًا بين الموضعين. إذا تم وضعه في مقدمة المعلمة ، تتم زيادة المعلمة (أو إنقاصها) قبل إرجاع المعلمة. إذا وضعت بعد ذلك ، يتم إجراء العملية بعد يتم إرجاع المعلمة. هذا غريب نوعا ما ، لكنه السلوك المقصود. هنا عرض توضيحي:



[me @ linuxbox ~] $ فو = 1 [me @ linuxbox ~] $ صدى $ ((foo ++)) 1

[me @ linuxbox ~] $ صدى $ فو

[me @ linuxbox ~] $ فو = 1 [me @ linuxbox ~] $ صدى $ ((foo ++)) 1

[me @ linuxbox ~] $ صدى $ فو


2

2


إذا قمنا بتعيين قيمة واحد إلى المتغير فو ثم زيادته بامتداد ++ المشغل موضوع بعد اسم المعلمة ، فو يتم إرجاعه بقيمة واحد. ومع ذلك ، إذا نظرنا إلى قيمة المتغير مرة ثانية ، فسنرى القيمة المتزايدة. إذا وضعنا ملف ++ عامل التشغيل أمام المعلمة ، نحصل على السلوك الأكثر توقعًا:


[me @ linuxbox ~] $ فو = 1 [me @ linuxbox ~] $ صدى $ ((++ foo)) 2

[me @ linuxbox ~] $ صدى $ فو

2

[me @ linuxbox ~] $ فو = 1 [me @ linuxbox ~] $ صدى $ ((++ foo)) 2

[me @ linuxbox ~] $ صدى $ فو

2


بالنسبة لمعظم تطبيقات الصدفة ، فإن إضافة عامل التشغيل مسبقًا سيكون أكثر فائدة.

غالبًا ما يتم استخدام عوامل التشغيل ++ و - جنبًا إلى جنب مع الحلقات. سنقوم ببعض التحسينات على البرنامج النصي modulo الخاص بنا لتشديده قليلاً:



#! / بن / باش

# modulo2: شرح عامل modulo لـ ((i = 0؛ i <= 20؛ ++ أنا )) ؛ فعل

لو (((أنا٪ 5) == 0)) ؛ ثم اطبع "<٪ d>" $ i

آخر

printf "٪ d" $ i

انتهى فاي

printf "\ n"

#! / بن / باش

# modulo2: شرح عامل modulo لـ ((i = 0؛ i <= 20؛ ++ أنا )) ؛ فعل

لو (((أنا٪ 5) == 0)) ؛ ثم اطبع "<٪ d>" $ i

آخر

printf "٪ d" $ i

انتهى فاي

printf "\ n"


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: