Takrorlash operatorlari.
Goto takrorlash operatori. Goto operatori boshqa barcha takrorlash operatorlari
uchun asosiy mezon bo’lib xizmat qiladi. Lekin shu bilan birgalikda unda juda
ko’p o’tishlar amalga oshiriladi va buning natijasida dastur chalkashliklarga yo’l
qo’yadi.Professional dasturchilar odatda unda foydalanihmaydi, lekin C# tilini
29
mukammal o’rganish uchun bu operator haqida qisqacha aytib o’tamiz va unga
doir misol:
using
System;
using
System.Text;
namespace
ok
{
class
Program
{
static
void
Main(
string
[] args)
{
int
a,b=0;
a1: a =
int
.Parse(
Console
.ReadLine());
Console
.WriteLine(
"a="
);
if
((a > 99) && (a < 1000)){
b = a % 10;
b += a / 100;
b+=(a/10)%10;
Console
.WriteLine(
"a sonning raqamlar yig'indisi!!! "
+b);
else
{
Console
.WriteLine(
"musbat son kiriting!"
) ; }
goto
a1;
Console
.ReadKey();
}}
}
}
Bu dastur berilgan a sonning raqamlar yig’indisini
hisoblaydi.
While takrorlash operatori.
Bu takrorlash operatori “shart qanoatlantiradi – ish davom etadi” qoidasi
bo’yicha ishlaydi. Bunda bool tipiga tegishli qiymat qaytariladi.
30
while(shart) amal;
while(shart) {
amal1;
amal2;
}
Misol:
using
System;
using
System.Text;
namespace
factor
{
class
Program
{
static
void
Main(
string
[] args)
{
int
n, k = 5, t = 0;
n =
int
.Parse(
Console
.ReadLine());
Console
.WriteLine(
"son kiriting! N="
);
while
(k <= n)
{
t = t + (n / k);
k = k * 5;
}
Console
.WriteLine(
"n "
+ t +
" ta nol bilan tugaydi!"
);
Console
.ReadKey();
}
}
}
Quyida berilgan dastur berilgan son nechta nol bilan tugashini hisoblaydi.
31
Agar shart tekshirilganda rost bo’lsa, instruksiyalar bloki bajariladi, aks holda
while dastur ishlashini to’xtatadi.
do … while takrorlash operatori.
Shunday hollar bo’ladiki, while takrorlash operatori sizning talablaringizga javob
bermaydi, bunday hollarda do… while takrorlash operatoridan foydalanish
qulayroq. Masalan oddiy maxgacha ko’paytirish maslasini ko’rinishi:
using
System;
using
System.Text;
namespace
aaaa
{
class
Program
{
static
void
Main(
string
[] args)
{
int
s = 1;
int
max = 5;
int
i = 1;
do
{
s *= i;
i++;
}
while
(i <= max);
Console
.WriteLine(
" s="
+s);
Console
.ReadKey();
}
}
}
Natija : Berilgan sonlar ko’paytmasini chop etadi!
32
Do … While operatori “amal bajar, agar shart bajarilsa, yana bir bor bajar”
qoidasi bo’yicha ishlaydi. While operatori bu holda birorta ham amal bajarmas edi.
For takrorlash operatori.
Agar yana bir bor yuqoridagi barcha takrorlash operatorlari (while,
do…while, goto) ga e’tibor bersak, shuni aniqlash mumkinki, ularda doimo oldin i
o’zgaruvchisi inisializatsiya (nomlash) qilinadi, keyin u 1 taga ortiriladi va
takrorlanish sharti (i
instruksiyaga birlashtiradi.
for(inisializatsiya, shart, bajarilish tartibi) amal;
yoki
For ([inisializatsiya(nomlash) ]; [ifoda] ; [i ni ortirish])
{
instruksiya
}
Yuqoridagi misolni for takrorlanish operatori bilan yechamiz :
using
System;
using
System.Text;
namespace
aaaa
{
class
Program
{
static
void
Main(
string
[] args)
{
int
i,s=1;
int
max = 6;
for
(i=1;i
s=s*i;
Console
.WriteLine(
"Ko'paytmasi s="
+s);
Console
.ReadKey();
33
}
}
}
Natija : Berilgan sonlar ko’paytmasini chop etadi!
Break va continue.
Dastur bajarilishida shunday holatlar bo’ladiki, dastur ishini to’xtashish yoki
ma’lum qismini bajarmaslik zarur bo’lib qoladi. Bunday hollarda break va
continue instruksiyalaridan foydalanish qulay. Agar sizga dastur ishini ma’lum
paytda (holatda) to’xtatish, oxirigacha bajarmaslik zarur bo’lsa, u holda break dan
foydalanish kerak :
using System;
class Values
{
static void Main( )
{
//oddiy sonlar uchun belgi qo’yamiz
bool a;
for(int i =100; i > 1; i --)
{
//belgi qo’yamiz
a = true;
for (int j = i-1; j > 1; j--)
//agar nol qoldiqli bo’luvchi bo’lsa
if(i%j == 0)
{
//belgini tashlaymiz
a = false;
// agar birorta bo’luvchi topilmasa
//nol qoldiqli
if(a)
34
Console.WriteLine("(0} = oddiy son ", i);}}
Continue instruksiyasi dastur ishini to’xtatmaydi, balki, u shu takrorlanish
bajaradigan amalni bekor qiladi xolos.
for (int j = 0; j
{
if (j%2 = = 0)
continue;
Console.WriteLine("{0}", j);}
Bu misol ekranga barcha 100 gacha bo’lgan toq sonlarni chiqarib beradi.Agarda
tekshirish paytida juft son kelib qolsa, u holda hech qanday amal bajarilmaydi va
takrorlanish birta keyinga o’tkaziladi.
|