Сабақ № С# тілінің шартты, циклдық алгоритмдерді бағдарламалау



бет2/6
Дата16.10.2022
өлшемі84,74 Kb.
#153315
түріСабақ
1   2   3   4   5   6
Байланысты:
Зертханалық жұмыс №2

1.2. Шартсыз өту операторы
С# бірнеше операторлар бар,команданың қатарың өзгертетін: Сөзсіз ауысу операторы goto, шыгу операторы break, циклдық итерацияға өтетін оператор continue, әдістен қайтару оператоы return және генерацияның шығару операторы throw.
goto сөзсіз ауысу операторы
goto сөзсіз ауысу операторының форматы бар:
goto <таңба>;
Осы функция денесінде тек бір ғана конструкция түрі болады:
<таңба>: <оператор>;
Goto операторын басқаруды белгіленген таңбамен оператор жібереді. goto операторын қолдану мысалын қарастырайық:
static void Main()
{
float x;
metka: Console.WriteLine("x="); // таңбамен белгіленген оператор
x = float.Parse(Console.ReadLine());
if (x!=0) Console.WriteLine("y({0})={1}", x, 1 / x );
else
{
Console.WriteLine("функция анықталмаған");
goto metka;// басқаруды беру таңбасы
}
}

Есте сақтау керек goto операторы үлкен көлемді бағдарламаны оқуда қиндықтар туындайды,сондықтан таңбаны тек қана керекті кезде ғана қолдану, switch операторы.




1.3. switch таңдау операторы
switch таңдау операторы бірнеше бағытта тармақтануды есептеу үшін. Оператора формат:
switch ( < айтылу > )
{
case <константы_айтылу_1>:
[<оператор 1>]; < өту операторы >;
case <константы_айтылу _2>:
[<оператор 2>]; < өту операторы >;
...
case <константы_ айтылу _n>:
[<оператор n>]; < өту операторы >;
[default: <оператор>; ]
}


Ескерту. switch операторында тік жақшада жазылған айтылу міндетті емес элемент.Егерде ол болмаса онда өту операторыда болмайды.
Switch сөзінен кейін тұрған айтылуда арифметикалық, символдық, жолдық тип немесе көрсеткіш типі болу керек. Барлық константарда айтылу әр түрлі мағына беру керек,бірақ олардың типі айтылу типімен сай келу керек,switch кейін немесе тура келу керек.Кілттік сөз case және содан кейін орналасқан константты айтылу case таңбасы деп аталады.
Орындалу операторы айтылуды есептеудең басталады, switch кілттік сөзінең кейін орналасқан.Алыңған нәтиже case таңбасымен салыстырылады.Егерде нәтиже case таңбасымен айтылумен сәйкес болса,онда таңбадан кейін тұрған оператор орыңдалады және одан міндетті түрде өту операторы: break, goto және т.б. break операторын қолданғаннаң кейін switch операторынаң шығады және басқару switch операторынан кейінгіге беріледі. Егерде goto операторы қолданылса онда басқару goto кейін таңбамен белгіленген операторға беріледі.
Мысал. Арифметикалық түрде берілген операция (қосу,алу көбейту және бөлу) және екі операндаға, операндаға қолданылған операцияны экран бетіне шығару.
static void Main()
{
Console.Write("OPER= ");
char oper=char.Parse(Console.ReadLine());
bool ok=true;
Console.Write("A= ");
int a=int.Parse(Console.ReadLine());
Console.Write("B= ");
int b=int.Parse(Console.ReadLine());
float res=0;
switch (oper)
{
case '+': res = a + b; break; //1
case '-': res = a - b; break;
case '*': res = a * b; break;
case ':': if (b != 0)
{
res = (float)a / b; break;
}
else goto default;
default: ok = false; break;
}
if (ok) Console.WriteLine("{0} {1} {2} = {3}", a, oper, b, res);
else Console.WriteLine("error");
Console.ReadLine();

}


Бағдарламаның жұмыс нәтижесі: oper x y rez
+ 4 5 9
: 4 0 error
% 4 3 error
1. 1 жолдағы break операторын ауыстырыныз, goto case '-' операторына және қандай өзгерулер болатынын қараңыз.
2. Шартты if операторындағы бұтақты else алып тастап,қандай өзгерулер болатының қараныз.
Егер әр түрлі таңбаға бір ғана іс әрекет орындалсын десеніз,онда қос нүкте жазылады.Мысал:

switch (oper)


{
case '+': res = a + b; break;
case '-': res = a - b; break;
case '*': res = a * b; break;
case '/': case ':': if (b != 0) // Таңбалардың санап шығуы
{
res = (float)a / b; break;
}
else goto default;
default: ok = false; break;
}




Достарыңызбен бөлісу:
1   2   3   4   5   6




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет