Shartli operator (agarboshqa)
Shartli operator, agar hisoblash jarayonini navbati bilan ikki yo'nalishga ajratish uchun ishlatilsa, ALTERNATIVE algoritmik tuzilishini amalga oshiradi, uning blok diagrammasi quyidagicha ko'rinadi:
Agar<Условие> to'g'ri, keyin<Оператор 1>, aks holda<Оператор 2>.
Hisoblash jarayonini ikki yo'nalishga ajratish uchun shartli operatordan foydalanish misoli:
// y \u003d | x | modulini hisoblash
agar (x< 0) { y= -x; }
If iborasi, shuningdek, CHOICE algoritmik tuzilishini amalga oshirish uchun ishlatiladi (quyida keltirilgan blok-sxemaga qarang), agar kalit tanlash buyrug'ini ishlatib bo'lmaydigan bo'lsa (bu haqda keyinroq).
CHOICE algoritmik tuzilishini amalga oshirish uchun catch operatoridan foydalanish:
CHOICE algoritmik tuzilishini amalga oshirish uchun shartli operatordan foydalanish misoli:
// y \u003d belgisini (x) hisoblash osonroq amalga oshiriladi
agar (x< 0) { y= -1; }
agar (x \u003d\u003d 0) (y \u003d 0;)
agar (x\u003e 0) (y \u003d 1;)
// y \u003d belgisini (x) hisoblash amalga oshirishning yanada samarali usuli hisoblanadi
agar (x< 0) { y= -1; }
aks holda (x \u003d\u003d 0) (y \u003d 0;)
aks holda (x\u003e 0) (y \u003d 1;)
Tanlash operatori (almashtirish) + interrupt operatori (tanaffus)
Kommutator bayonoti (tanlov) hisoblash jarayonini bir necha yo'nalishlarga ajratish uchun mo'ljallangan. Ushbu operator CHOICE algoritmik tuzilishini amalga oshiradi. Biroq, bu cheklangan foydalanish hisoblanadi, chunki unda o'zboshimchalik shartlarini o'rnatolmaysiz. Switch operatoridagi shartlar quyidagi tuzilishga ega<Выражение> == <Константа>.
Operator formati:
almashtirish (<Выражение>)
ish<Константа 1>:
<Оператор 1>
ish<Константа 2>:
<Оператор 2>
ish<Константа M>:
<Оператор M>
<Оператор M+1>
Agar<Выражение> ga teng qiymatni oladi<Константа 1>, keyin<Оператор 1>; agar<Выражение> ga teng qiymatni oladi<Константа 2>, keyin<Оператор 2> va hokazo. Agar<Выражение> belgilangan doimiylardan farqli qiymatni oladi, keyin<Оператор M+1>.
Select operatoridan foydalanish misoli:
// Foydalanuvchining javobini tahlil qiling
scanf ("% c", & Javob);
printf ("\\ nSiz 1 tugmachasini bosdingiz");
printf ("\\ nSiz 2 tugmachasini bosdingiz");
Break operatori operatorining bajarilishini to'xtatadi. Agar u erda bo'lmaganida, kommutator ichidagi barcha bayonotlar ketma-ket bajarilishi kerak edi. Masalan, shunga o'xshash:
// Foydalanuvchining javobini tahlil qiling
scanf ("% c", & Javob);
printf ("\\ nSiz 1 tugmachasini bosdingiz");
printf ("\\ nSiz 2 tugmachasini bosdingiz");
printf ("\\ nSiz noto'g'ri bosgansiz");
Foydalanuvchi '2' belgisini kiritganda ekranda ikkita xabar paydo bo'ladi:
"Siz 2 tugmachasini bosdingiz"
"Siz noto'g'ri bosdingiz"
Do'stlaringiz bilan baham: |