? :;
if shart operatoriga o’xshash holda bus hart amali quyidagicha ishlaydi: agar rost(true) bo’lsa bajariladi, aks holda . Odatda ifodalar qiymatlari birorta o’zgaruvchiga o’zlashtiriladi.
Misol: 2 ta sondan kattasini tuzuvchi programma tuzilsin.
int a,b;
a=int.Parse(Console.ReadLine());
b=int.Parse(Console.ReadLine());
int max = (a>b) ? a : b;
Console.WriteLine(max);
Console.ReadKey();
Masalan:
Haqiqiy turga tegishli x o‘zgaruvchi berilgan. Uning qiymatiga mos keluvchi f funksiyaning qiymati topilsin.
f: Console.Write("x=");
double x=double.Parse(Console.ReadLine());
if(x>0)
{
if(0Console.WriteLine("f(x)="+Math.Pow(x,2));
else
Console.WriteLine("f(x)="+ 4);
}
else
Console.WriteLine("f(x)=" + -x);
goto f;
Console.ReadKey();
bool a=true,b=false,c=true,d=false;
Console.WriteLine(((a && b) || (c && d)) && (a || b));
Console.ReadKey();
float a,b;
Console.Write("a=");
a=float.Parse(Console.ReadLine());
Console.Write("b=");
b=float.Parse(Console.ReadLine());
bool s;
s=(a>0 && b<0) || (a<0 && b>0);
Console.WriteLine(s);
Console.ReadKey();
Shart operatorlari. switch operatorlari
Reja:
1. Tanlash Operatori
2. switch operatori
3.Masalalar yechish
switch operatori: C# tilida tanlash operatori - ko'p yo'nalishli dasturlarni tarmoqqa ajratish imkonini beruvchi switch operatoridir. Binobarin, ushbu operator dasturning keyingi bajarilishi uchun bir nechta muqobil variantlardan birini tanlash imkonini beradi. Garchi ko'p yo'nalishli testlar bir qator ichki o'rnatilgan if iboralari bilan amalga oshirilishi mumkin bo'lsa-da, ko'p hollarda switch operatoridan foydalanish samaraliroq bo'ladi. Ushbu operator quyidagicha ishlaydi. Ifodaning qiymati belgilangan ro'yxatdagi tanlov konstantalari bilan ketma-ket taqqoslanadi. Tanlov shartlaridan biri bilan moslik topilishi bilanoq, ushbu shart bilan bog'liq bo'lgan gaplar ketma-ketligi bajariladi. Quyida switch iborasining umumiy shakli keltirilgan.
switch (ifoda)
{
case konstanta1:
amallar ketma-ketligi
break;
case konstanta2:
amallar ketma-ketligi
break;
case konstanta3:
amallar ketma-ketligi
break;
default:
amallar ketma-ketligi
break;
}
Switch operatoridagi ko'rsatilgan ifoda butun son turi (char, bayt, short yoki int), sanab o'tilgan yoki satr bo'lishi kerak. O'zgaruvchi nuqta kabi boshqa turdagi ifodalarga switch operatorida ruxsat berilmaydi. Ko'pincha, switch iborasini boshqaruvchi ifoda oddiygina bitta o'zgaruvchiga tushadi. Bundan tashqari, tanlash konstantalari ifoda turiga mos keladigan turdagi bo'lishi kerak. Bitta switch operatorida bir xil qiymatga ega bo'lgan ikkita tanlash konstantasiga ega bo'lishga yo'l qo'yilmaydi.
Agar tanlov konstantalarining hech biri belgilangan ifodaga mos kelmasa, default bo‘limdagi gaplar ketma-ketligi bajariladi. default bo’limi ixtiyoriy. Agar u yo'q bo'lsa va ifoda tanlov shartlarining birortasiga mos kelmasa, u holda hech qanday amal bajarilmaydi. Agar tanlash shartlaridan biri bilan mos keladigan bo'lsa, u holda bu shart bilan bog'liq bo'lgan operatorlar break operatorigacha bajariladi.
Bitta case bo’limi bilan bog'langan operatorlar ketma-ketligini keyingi case qismiga o'tkazish xato hisoblanadi, chunki C# dastur oqimini boshqarishni o‘tkazishda “muvaffaqiyatsizliklarga” yo‘l qo‘ymaslik qoidasiga amal qilishi kerak. Shuning uchun ham switch operatorining har bir holat bo‘limidagi amallar ketma-ketligi break operatori bilan tugaydi. default qismidagi operatorlar ketma-ketligi ham "muvaffaqiyatsizlik" dan xoli bo'lishi kerak, shuning uchun u ham break operatori bilan tugatiladi.
“Muvaffaqiyatsizlik” bir case qismining boshqasiga o‘tishini oldini olsa-da, quyidagi dastur misolida ko‘rsatilganidek, ikki yoki undan ortiq case qismlariga teglar yordamida bir xil kod ketma-ketligiga murojaat qilishlari mumkin.
// "Muvaffaqiyatsiz" bo'sh case qismlariga misol.
using System;
class EmptyCasesCanFall
{
static void Main()
{
int i;
for (i = 1; i < 5; i++)
switch (i)
{
case 1:
case 2:
case 3:
case 4:
Console.WriteLine("i teng 1, 2,3 yoki 4");
break;,
case 5:
Console.WriteLine("i teng 5");
break;
}
}
}
0>
Do'stlaringiz bilan baham: |