11.2. Параметрли такрорлаш оператори – for() конструкцияси
Синтаксиси:
for([инициализация-счётчик]<;> [шартли ифода]<;> [ўзгариш қадами])
{
оператор(лар)...
}
Бу ерда:
инициализация-счётчик – такрорланиш параметрининг бошланғич қийматини ўрнатиш, яъни инициализация қилиш учун ёзилади. Ушбу қисмда бир вақтнинг ўзида бир ёки бир нечта ўзгарувчини бошланғич қийматини инициализация қилиб кетиш мумкин. Агар бошланғич қиймати инициализация қилинувчи ўзгарувчилар бир нечта бўлса улар вергул билан ажратиб ёзилади. Масалан:
for ( int i = 0, j = 20; ...
Шартли ифода такрорланишни давом этишини ёки тугалланишини текширувчи маниқий ифода. Ушбу ифоданинг қиймати true бўлса, такрорланиш жараёни давом этади ва аксинча false бўлса тугалланади.
Ўзгаришш қадами – такрорланиш параметрининг ҳар бир итерацияда ўзгариб боришини таминловчи ифода. Ушбу ифода бир нечта бўлса улар вергул билан ажратиб ёзилади. Масалан:
for ( int i = 0, j = 20; i < 5 && j > 10; i++, j-- ) ...
for конструкциясининг юқорида санаб ўтилган 3 та параметрларни ихтиёрий бирортасидан ёки умуман фойдаланмаслик мумкин. Лекин унинг ўрнини билдирувчи нуқтали вергул(;)ларни ўз ўрнида қўйиб кетилиши лозим.
Масалан:
int i = 0;
for (; ;)
{
Console.WriteLine("{0}нинг квадрати={1}", ++i, i * i);
System.Threading.Thread.Sleep(500);
}
Юқоридаги мисолда инициализация қилинувчи ва такрорланишни тўхтатувчи шарт кўрсатилмаган. Шу сабабли цикл хатолик юзага келмагунча давом этаверади.
0-9 гача бўлган сонларнинг квадратларини чоп қилиш учун for конструкцияси қуйидагича ёзилади:
for(int i=0; i<9; i++ )
{
Console.WriteLine(“{0} сонининг квадрати {1} га тенг”,i,i*i);
}
Қуйидги мисол эса, юқорида келтирилган мисолга эквивалентдир.
int i = 0;
for (; i<9;)
{
Console.WriteLine("("{0}нинг квадрати={1}", ++i, i * i);
}
Бизга қуйидаги функция берилган бўлсин.
Ўзгариш қадами 2 бўлганда, [-2..12] гача оралиқда унинг функцияга мос равишда Х аргументнинг қийматларини чоп қилувчи дастур 11.2.1-листингда келтирилган. Х аргументнинг бошланғич қийматини Xn, охирги қийматини Xk, ўзгариш қадамини dx билан белгилаб оламиз.
using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main()
{
double Xn = -2, Xk = 12, dX = 2, t = 2, y;
Console.WriteLine( "| x | y |");
// қийматларни чоп қилиш учун жадвал сарлавхаси
for ( double x = Xn; x <= Xk; x += dX )
{
y = t;
if ( x >= 0 && x < 10 ) y = t * x;
if ( x >= 10 ) y = 2 * t;
Console.WriteLine( "| {0,6} | {1,6} |", x, y );
}
}
}
}
Do'stlaringiz bilan baham: |