II. Asosiy qism
Tayinlash operatsiyalar.
Belgilash operatsiyalari qiymatni o'rnatadi. Tayinlash operatsiyalari ikkita operandni o'z ichiga oladi va chap operand faqat o'zgartirilgan nomlangan ifodani, masalan, o'zgaruvchini ko'rsatishi mumkin.Boshqa ko'plab dasturlash tillarida bo'lgani kabi, C # da asosiy belgilash operatori mavjud bo'lib, u chap operandga o'ng operand qiymatini belgilaydi:
int raqami = 23;
Bu yerda o'zgaruvchining raqamiga 23 raqami beriladi. O'zgaruvchining raqami chap operandni ifodalaydi, unga o'ng operandning qiymati beriladi, ya'ni 23.
Bundan tashqari, bir vaqtning o'zida bir nechta o'zgaruvchilarga bir nechta topshiriqlarni bajarishingiz mumkin:
int a, b, c;
a = b = c = 34;
Ta'kidlash joizki, topshiriq operatsiyalari past ustuvor hisoblanadi. Va birinchi navbatda, o'ng operandning qiymati hisoblab chiqiladi va shundan keyingina bu qiymat chap operandga tayinlanadi. Masalan:
int a, b, c;
a = b = c = 34 * 2/4; // 17 ...
int a = 10;
a += 10; // 20
a -= 4; // 16
a *= 2; // 32
a /= 8; // 4
a <<= 4; // 64
a >>= 2; // 16
Belgilash operatsiyalari o'ng-assotsiativ, ya'ni o'ngdan chapga amalga oshiriladi. Masalan:
int a = 8;
int b = 6;
int c = a + = b - = 5; // 9
Bunday holda, ifodaning bajarilishi quyidagicha bo'ladi:
b - = 5 (6-5 = 1)
a + = (b- = 5) (8 + 1 = 9)
c = (a + = (b- = 5)) (c = 9)
Ma'lumotlar turlarini ko'rib chiqishda ma'lum bir turdagi qanday qiymatlarga ega bo'lishi va qancha bayt xotirani egallashi ko'rsatilgan. Oxirgi mavzuda arifmetik amallar muhokama qilindi. Endi har xil turdagi ma'lumotlarga qo'shish amalini qo'llaymiz:
byte a = 4;
int b = a + 70;
Operatsiya natijasi, kutilganidek, 74 raqamidir.
Ammo endi ikkita bayt ob'ektiga qo'shimchani qo'llashga harakat qilaylik:
byte a = 4;
byte b = a + 70; // xato
Bu erda faqat qo'shish natijasini oladigan o'zgaruvchining turi o'zgargan - int dan baytga. Biroq, biz dasturni kompilyatsiya qilishga harakat qilganimizda, biz kompilyatsiya vaqtida xatolikka duch kelamiz. Va agar biz Visual Studio'da ishlayotgan bo'lsak, muhit ikkinchi qatorni qizil to'lqinli chiziq bilan chizib, unda xatolik borligini ko'rsatadi.
Operatsiyalar paytida biz ma'lum bir turdagi saqlashi mumkin bo'lgan qiymatlar oralig'ini hisobga olishimiz kerak. Ammo bu holda, biz olishni kutayotgan 74 raqami bayt tipidagi qiymatlar oralig'iga yaxshi mos keladi, shunga qaramay, biz xatoga yo'l qo'yamiz. Gap shundaki, qo‘shish (va ayirish) operatsiyasi int qiymatini qaytaradi, agar operatsiya bit eni int dan kichik yoki unga teng bo‘lgan butun sonli ma’lumotlar turlarini (ya’ni bayt, short, int turlari) o‘z ichiga olsa. Shuning uchun a + 70 operatsiya natijasi xotirada 4 bayt uzunlikdagi ob'ekt bo'ladi. Keyin bu ob'ektni bayt tipidagi va xotirada 1 baytni egallagan b o'zgaruvchisiga belgilashga harakat qilamiz. Va bu vaziyatdan chiqish uchun transformatsiya operatsiyasini qo'llash kerak.
byte a = 4;
byte b = (byte)(a + 70);
Do'stlaringiz bilan baham: |