235
== (equal – teng)
Mantiqiy ifodalar ustida mantiqiy
amallar bajariladi va
ularnng natijalari ham mantiqiy tipda bo‘ladi. Mantiqiy ifodalar
ustida amallar bajarilishi uchun mantiqiy operatorlar ishlatiladi:
and (only true if both values are true – rost, agar ikkala qiymat
ham rost bo‘lsa) or (true if either value is true – rost,
agar ikkala
qiymatdan biri rost bo‘lsa) not (returns the opposite of the value –
inkor, ya’ni yolg‘on, agar berilgan qiymat rost bo‘lsa)
Satriy kattaliklar bilan ishlaganda har qanday ikkita satriy
kattalikni birlashtirish uchun ularning konkatenatsiyasi sifatida
gorizontal ikkita nuqta (..) ishlatiladi, masalan
name = "Joe".." Blow"; -- assigns "Joe Blow" to name
b=name .. " is number " .. 1; --assigns "Joe Blow is number
1" to b
AutoPlay ssenariy matnida tarmoqlanuvchi
algoritm uchun if,
takrorlanuvchi algoritmlar uchun while, repeat va for kabi sikl
operatorlaridan foydalanish mumkin.
Tarmoqlanuvchi algortimlar uchun
if operatorining umumiy
ko‘rinishdagi sintaksisi quyidagicha:
if A then
B
end
Bu yerda: A – shart, B esa shu shart rost qiymatga ega bo‘lganda
bajariladigan ifoda matni. E’tibor berish kerakki, if so‘zi
faqat kichik
harf bilan yozilganda to‘g‘ri bo‘ladi. Bosh harf bilan yozilsa, xato
hisoblanadi. Misol ko‘ramiz:
x = 50;
if x > 10 then
Dialog.Message("result", "x is greater than 10");
end
Yoki:
y = 3;
if ((35 * y) < 100) then
Dialog.Message("", "y times 35 is less than 100");
236
end
Bu algoritm faqat bitta shart uchun, ya’ni
berilgan shart rost
qiymatga ega bo‘lgan hol uchun bajariladi. Agar qo‘yilgan shart rost
qiymatga ega bo‘lganda bajariladigan ifoda bilan yolg‘on qiymatga ega
bo‘lganda bajarilishi kerak bo‘lgan shrt birga yozilishi kerak bo‘lsa, u
holda ssenariy matni quyidagicha bo‘ladi:
x = 5;
if x > 10 then
Dialog.Message("", "x is greater than 10");
else
Dialog.Message("", "x is less than or equal to 10");
end
Agar tarmoqlanishlar soni ikkitadan ko‘p yoki bir nechta
bo‘lsa, u holda yuqoridagi ssenariy matninni quyidagicha o‘zgartirish
mumkin:
x = 5;
if x == 10 then
Dialog.Message("", "x is exactly 10");
elseif x == 11 then
Dialog.Message("", "x is exactly 11");
elseif x == 12 then
Dialog.Message("", "x is exactly 12");
else
Dialog.Message("", "x is not 10, 11 or 12");
end
Endi sikl operatorlari bilan ishlashga o‘tamiz.
Dastlab While
operatoridan qanday foydalanish masalasini ko‘ramiz. Umumiy holda
While operatori quyidagi sintaksisga ega bo‘ladi:
while A do
B
end
Bu yerda: A – shart, B – bajariluvchi ifoda. Ikkita misol ko‘ramiz:
1-misol:
a = 1;
237
while a < 10 do
a = a + 1;
end
2-misol:
count = 1;
while count < 100 do
count = count + 1;
if count == 50 then
break;
end
end
Xuddi shuningdek, Repeat sikl operatori ham o‘ziga xos
sintaksisga ega va u quyidagicha beriladi:
repeat
B
until A
Bu yerda: A – shart, B – bajariluvchi ifoda. Bu sikl operatorining
While
dan farqi shundaki, unda shart until so‘zi bilan birga oxirida
yoziladi.
1-misol:
i = 1;
repeat
i = i + 1;
until i > 10
2-misol:
count = 1;
repeat
count = count + 1;
if count == 50 then
break;
end
until count > 100
Endi For sikl operatorining umumiy sintaksisi bilan tanishamiz:
for variable = start,end,step do
238
do something here
end
Ko‘rib turganingizdek, bu yerda o‘zgaruvchining
dastlabki va
oxirgi qiymatlari ma’lum va ular orasi ma’lum qadamlar bilan
berilmoqda. Demak bajariluvchi ifoda shu shrtga to‘liq bo‘ysunadi.
Misollar ko‘ramiz:
1-misol:
for x = 1, 10 do
Dialog.Message("Number", x);
end
2-misol:
for x = 10, 1, -1 do
Dialog.Message("Number", x);
end
3-misol:
for x = 1, 10 do
Dialog.Message("Number", x);
if x == 5 then
break;
end
end
Demak, birinchi misolda x o‘zgaruchining qiymati 1 dan 10 gacha +1
(plyus bir) qadam bilan o‘sib boradi. Qadam qiymati +1 ga teng
bo‘lgani uchun u ssenariyda yozilmagan.
Ikkinchi misolda esa x
o‘zgaruvchining qiymati 10 dan 1 ga qarab –1 (minus bir) qadam
bilan kamayib boradi. Uchinchi misolda x o‘zgaruvchining qiymati 1
dan 10 gacha o‘zgarishi mumkinligi ko‘rsatilgan, ammo 5 ga teng
bo‘lganda sikl to‘xtaydi.
Dostları ilə paylaş: