3*3=9
3*3=4
2*2=4
3*3=1
2*2=1
Switch(i)
Int i;
Main()
Getch();
Main()
Clrscr();
Int x,y,z;
Char symbol;
................
[default: операторлар;]
}
Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды (char типі де) типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Егер олардың біріне тең болса, сол жол орындалады, жол соңында көшу операторы болмаса, келесі жолдар толық орындалады. Ал бір жолды орындап болған соң, switch операторынан шығу үшін break операторы қолданылады. Егер switch сөзінен кейінгі өрнек мәні ешбір константамен сәйкес келмесе, онда default сөзінен кейінгі операторлар атқарылады. Кейде default сөзі болмауы да мүмкін.
Default сөзі болмаса, онда switch операторынан кейінгі келесі операторлар орындала береді. Switch операторындағы өрнек түрінде нақты типтегі мәліметтерді, сөз тіркестерін (жолдарды) пайдалануға болмайды. Кейде бүтін мәндермен үйлестірілген мәліметтердің құрылымдық (структуралық) элементтері қолданылуы мүмкін.
7-мысал: Екі бүтін сан енгізіп, олармен арифметикалық 4 амалдың бірін орындау қажет.
#include <stdio.h>
#include <conio.h>
printf("Екі бүтін сан енгізіңіз: ");
scanf("%i%i",&y,&z);
printf("Қандай амал орындау керек: ");
scanf("%s",symbol);
switch (symbol) { case ‘-‘ : x=y-z; break; case ‘+‘ : x=y+z; break; case ‘*‘ : x=y*z; break; case ‘/‘ : x=y/z; break; default: printf (”белгісіз операция\n”); printf("\nНәтижесі - %d\n",x);
getch();} 8-мысал: Шығыс календары бойынша жылға сәйкес жануар атын анықтау.
#include <stdio.h>
#include <conio.h>
{ int gil;
printf("Жылды енгізіңіз: \n");
scanf("%i",&gil);
switch (gil % 12)
{
case 0 : printf("Мешін жылы");break;
case 1 : printf("Тауық жылы"); break;
case 2 : printf("Ит жылы"); break;
case 3 : printf("Доңыз жылы"); break;
case 4 : printf("Тышқан жылы"); break;
case 5 : printf("Сиыр жылы"); break;
case 6 : printf("Барыс жылы"); break;
case 7 : printf("Қоян жылы"); break;
case 8 : printf("Ұлу жылы"); break;
case 9 : printf("Жылан жылы"); break;
case 10: printf("Жылқы жылы"); break;
case 11: printf("Қой жылы"); break;
default : printf("Таңбасыз бүтін сан
енгізіңіз");
}
printf("\nENTER басыңыз");
}
Switch орындалуы кезінде цикл аяқталмай-ақ одан шығып, қалған операторларды аттап өтіп, осы цикл параметрінің келесі мәніне көшу үшін continue операторы қолданылады, яғни циклдің келесі итерациясына – қадамына басынан бастап ауысу жүзеге асырылады.
Мысал:
#include <stdio.h>
{
printf("\nБүтін сан енгіз: )";
scanf(“%i”,&i);
{case 1: printf("\nСан бірге тең!");
case 2: printf("\n2*2=%d",i*i);
case 3: printf("\n3*3=%d",i*i;break;
case 4: printf("\n Сан төртке тең!";
default: printf("\nАяқталды";
}
}
Бұл программаның жұмыс нәтижесі:
1 енгізілгенде мыналар шығарылады:
Сан бірге тең!
2 енгізілгенде мыналар шығарылады:
3 енгізілгенде мыналар шығарылады:
4 енгізілгенде мыналар шығарылады:
Сан төртке тең!
Қалған сандар енгізілсе:
Аяқталды!
сөзі шығарылады.
Бақылау сұрақтары
1. Си тілінде қандай операциялар бар?
2. Меншіктеу операторының түрлері.
3. Меншіктеу операторының жазылу форматтары.
4. Арттыру немесе кеміту (инкремент және декремент) операциялары.
5. Префикстік және постфикстік операциялар.
8. Құрама операторлар қалай ұйымдастырылады?
9. Бос оператор деген не?
10. Типтер ішінде төменнен жоғары қарай бағытталған түрлендірілу реттілігі.
11. Келтіру операцияларының жазылуы.
12. Программа жұмысын басқару операторлары
13. Бірнеше шарттық өрнектерді біріктіретін логикалық операторлардың қолданылуы.
14. Қандай жағдайларда шартты оператор пайдаланылады?
6. Шартты оператордың жазылуының қандай түрлері бар? Олардың мағына жағынан ерекшелігі неде?
10. Шартты операторға мысалдар келтіріңдер.
11. Шартты операторды пайдаланып y=1/(x-1)+1/(x-2) мәнін есептейтін программа құрыңдар.
12. Қабаттасқан шартты операторлардың жазылуы.
13. Шартты операция дегеніміз не?
14. Көп нұсқалы таңдау операторы не үшін қажет? Оның жазылу форматы қандай?
15. Көп нұсқалы таңдау операторына мысал келтіріңдер.
Дәріс№5