4 – Amaliy mashg’ulot : Tanlash ( switch) operatori Mashg’ulotning maqsadi: talabalarda tanlash operatorlari bilan ishlash malaka va ko‘nikmasini hosil qilish.
Switch operatori – dastur ishlashini berilgan qiymatga mos holda biror yo'nalishga o'zgartirib berishni ta'minlaydi. Bu operator bir necha variantlardan kerakligini tanlab olishda, « if» operatori o'rnida ishlatiladi. Albatta, barcha tanlovlarni «If» orqali amalga oshirish mumkin,. Farqi u shart true bo'lguniga qadar tekshiradi. Shart to'g'ri bo'lgandan keyin switch operatoridan boshqa qiymatlarni tekshirmaydi.
« Switch» operatoriga berilgan qiymat, «case» operatoridagi qiymatlar bilan birma-bir solishtiriladi. Agar qiymat biror variant bilan mos tushsa, shu variantga tegishli blok ichidagi operator yoki operatorlar bloki ishlaydi va «break» orqali bu tanlov(switch) yakuniga yetadi. Agar qiymat hech qaysi variant bilan mos tushmasa, «default» operatori ishlaydi va uning ichidagi operatorlar dastur ishlashini davom ettiradi.
«default» bloki bo'lmasligi ham mumkin, bunda agar variantlar orasida bizning qiymat topilmasa, «switch» hech qanday xabar bermaydi.
«break» operatori «switch» operatoridan chiqishni bildiradi, shuning uchun har bir «case» operatoridan keyin qo'yilgan. Agar bu operatorni olib tashlasak, bizning qiymat variantlar orasidan topilsa ham, «switch» operatori ishlayveradi va hamma «case» operatoriga murojat qilaveradi. Bu dasturning xato ishlashiga olib kela
public class SwitchExample {
publicstatic void main(String[] args) {
int number=20;
switch(number){
case 10: System.out.println("10");break;
case 20: System.out.println("20");break;
case 30: System.out.println("30");break;
default:System.out.println("Not in 10, 20 or 30");
}
}
}
Ekranda:
20
program case13;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,c,h,s,x:real;
n:1..4;
begin
read(n,x);
case n of
1: begin a:=x;c:=a*sqrt(2);h:=a/sqrt(2);s:=c*h/2;end;
2: begin c:=x; a:=c/sqrt(2);h:=c/2;s:=c*h/2; end;
3: begin h:=x; a:=h*sqrt(2);c:=2*h;s:=c*h/2; end;
4: begin s:=x; a:=sqrt(2*s);c:=(4*s)/(a*sqrt(2));h:=2*s/c;end;
end;
write('katet=',a:2:3,' ','gepotenuza=',c:2:3,' ',
'balandlik=',h:2:3,' ','yuza=',s:2:3);
readln;
readln;
end.
#pragma case13
#include int main(int argc, char **argv)
{
static float a,c,h,s,x;
int n;
cin>>n>>x;
switch (n)
{
case 1: { a=x;c=a*sqrt(2);h=a/sqrt(2);s=c*h/2;}
break;
case 2: { c=x; a=c/sqrt(2);h=c/2;s=c*h/2; }
break;
case 3: { h=x; a=h*sqrt(2);c=2*h;s=c*h/2; }
break;
case 4: { s=x; a=sqrt(2*s);c=(4*s)/(a*sqrt(2));h=2*s/c;}
break;
}
cout<<"katet="<"balandlik="<cin>>"\n";
return 0;
}
O‘zgaruvchilar izohi: a-katet, c-gipotenuza, h-balandlik, s– yuza, x-tanlangan element nomeri.