1. Butun sonlar literallari
Hozir esa yangi qiziqarli mavzu — literallar. Dastur kodiga to'g'ridan-to'g'ri kiritilgan ma'lumotlar literallar deb ataladi. Bu erda gap har qanday ma'lumot haqida emas, balki primitiv turlar va String
turi qiymatlar haqida ketmoqda.
Masalan, sizda quyidagi kod bor:
Kod | Literallar |
---|---|
|
|
Literallar bu kodda — bu 5
soni, 10
soni va Sum=
satridir.
Java tilida har bir narsaning turi bor, hatto literallar ham. Kodda barcha butun sonli literallar int
turiga ega. Int turi Java tilidagi standart butun sonlar turidir.
Agar siz kodda byte
yoki short
turidagi o'zgaruvchiga butun sonli literallarni tayinlashga qaror qilsangiz, hech qanday muammo bo'lmaydi. Shunchaki literallar qiymati o'zgaruvchi turi uchun mavjud bo'lgan qiymatlar diapazoniga mos kelishi kerak.
Java kompilyatori shunchalik aqlli ediki, byte
turidagi o'zgaruvchiga 100 butun sonli literallarni tayinlasa bo'ladi va bu hech qanday muammo tug'dirmaydi.
Misollar:
Kod | Ta'rif |
---|---|
|
Yaxshi kompilyatsiya qilinadi. |
|
Yaxshi kompilyatsiya qilinadi. |
|
Kompilyatsiya xatosi bo'ladi: byte turining maksimal qiymati 127 ga teng. |
Kodda long
turidagi literallarni ham yozish mumkin. Buning uchun butun sonning oxirida lotin harflari L yoki l qo'shiladi.
Misollar:
Kod | Ta'rif |
---|---|
|
Yaxshi kompilyatsiya qilinadi. |
|
Kompilyatsiya xatosi: 3 milliard int turi literallari uchun juda katta son. |
|
Kompilyatsiya xatosi: literallar turi long, o'zgaruvchi turi esa int. Bundan tashqari, 3 milliard int turining maksimal sonidan kattaroq. |
Katta sonlarni 10 yoki ko'proq belgida o'qish qiyinligini sezdikmi? Dastur kodida 3 milliard yoki 30 ekanligini darhol tushunmaymiz. Java-da kod o'qilishini osonlashtirish (va bu muhim!) Uchun raqamli literallarga chiziqcha belgilarini qo'shishga ruxsat berildi (bu son qiymatiga ta'sir qilmaydi).
Kodda yuqoridagi misolni chiziqcha belgilaridan foydalanib yozish mumkin, va bu biroz tushunarli bo'ladi:
Kod | Ta'rif |
---|---|
|
Yaxshi kompilyatsiya qilinadi. |
|
Kompilyatsiya xatosi: 3 milliard int turi literallari uchun juda katta son. |
|
Kompilyatsiya xatosi: literallar turi long, o'zgaruvchi turi esa int. Bundan tashqari, 3 milliard int turining maksimal sonidan kattaroq. |
Raqamli literallar ichida vergul ishlatish mumkin emas edi, chunki u allaqachon ishlatilgan. Masalan, metod chaqiruvlarida argumentlarni bir-biridan ajratish uchun.
2. Haqiqiy sonlar literallari
Kodda nafaqat butun sonli, balki suzuvchi nuqtali literallar (haqiqiy sonlar) ham kiritilishi mumkin.
Aslida, qoidasi juda oddiy: agar kodda bir son bor va uning yozuvida nuqta bo'lsa, bu son — suzuvchi nuqtali literallar. Va nafaqat literallar, balki double
turidagi literallar.
Float turidagi literallar yaratishingiz mumkin, lekin buning uchun sonning oxiriga F (yoki f) harfini qo'shishingiz kerak.
Misollar:
Kod | Ta'rif |
---|---|
|
Yaxshi kompilyatsiya qilinadi. |
|
Yaxshi kompilyatsiya qilinadi. |
|
Yaxshi kompilyatsiya qilinadi. |
|
Yaxshi kompilyatsiya qilinadi. |
|
Kompilyatsiya xatosi bo'ladi: o'zgaruvchi turi float, literallar turi double. |
Ha, to'g'ri, butun sonli literallarni float yoki double turidagi literallarga o'zgartirishingiz mumkin, shunchaki unga F (float uchun) yoki D (double uchun) qo'shimchani qo'shishingiz mumkin. Misollar:
Kod | Ta'rif |
---|---|
|
Yaxshi kompilyatsiya qilinadi. |
|
Yaxshi kompilyatsiya qilinadi. |
|
Kompilyatsiya xatosi bo'ladi: o'zgaruvchi turi int, literallar turi double . |
Suzuvchi nuqtali literallarning «ilmiy yozuv shakli» mavjud: raqamning ishorali qismidan tashqari, bu raqamni o‘n minglar darajasini ham ko‘rsatishingiz mumkin. Misol:
Literallar | Matematik yozuv | Yakuniy qiymat |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Satr literallari
Kodda to‘liq matn satrlarini ham kiritishingiz mumkin. Kompilyator satrni aynan ma'lumot (matn satri) sifatida qabul qilishi uchun, u ikkita qo'shtirnoq bilan o'rab olinadi.
Agar kod satrida juda ko'p qo'shtirnoqlar bo'lsa, ular juftlarga ajraladi. Birinchi qo'shtirnoq literallarni boshlanishini bildiradi, undan keyin keluvchi esa uning oxiri. Keyingi undan keyin keluvchi esa yangi literalarni boshlashi, undan keyin keluvchi esa ikkinchi literallarning oxiri. Va h.k.
Har qanday bunday literallar String
turiga ega.
Misollar
Kod | Tavsif |
---|---|
|
Satrda 5 literallari bor, ularning har biri bitta + belgidan iborat |
|
Bo'sh satr literali. Belgilar yo'q satr. |
|
Bu erda ikki literallar bor. Natijada 2+3-5 satr bo'ladi, ammo son emas |
|
Bu erda ham ikkita literallar bor. Return operatori bu yerda mavjud emas. |
Agar satr literali juda uzun bo'lsa, uni bir nechta qatorlarga bo'lib, «plus operatori» bilan birlashtirishingiz mumkin:
Kod | Tavsif |
---|---|
|
Agar bu satrni ekranga chiqarilsa, barcha matn bir satrga chiqariladi! |
4. Belgilar literallari
Kodda nafaqat satr literallari, balki alohida belgilar literallari ham kiritilishi mumkin. Bu erda bir belgi satridan emas, balki char
turidagi literallardan gap ketmoqda.
Belgili literallar bir tirnoqlar bilan o'rab olinadi, satrdan farqli o'laroq. Bir tirnoqlar ichida belgilar va faqat bitta bo'lishi kerak. Bo'sh bir tirnoqlar bo'lishi mumkin emas.
Misollar:
Kod | Tavsif |
---|---|
|
Char turidagi literallar. Lotin harfi A ni o'z ichiga oladi. |
|
Char turidagi literallar. @ belgisini o'z ichiga oladi |
|
Char turidagi literallar. Yapon alifbosining iyeroglifi. Ha, buni ham qilish mumkin. |
|
Char turidagi literallar. Unicode kodirovkasidagi belgi, uning raqami bilan belgilangan. |
Oxirgi misolda, Unicode kodirovkasidagi belgilar maxsus yozuv yordamida beriladi: avval \u
prefiksi keladi, keyin esa 4 ta o'n oltinli belgilar. Bu haqida kelajakdagi lektsiyalarda batafsilroq.
GO TO FULL VERSION