Java'da Literallar

All lectures for UZ purposes
Daraja , Dars
Mavjud

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
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

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
int a = 300;
Yaxshi kompilyatsiya qilinadi.
byte a = 100; 
Yaxshi kompilyatsiya qilinadi.
byte a = 300; 
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
long a = 3000000000L; 
Yaxshi kompilyatsiya qilinadi.
long a = 3000000000; 
Kompilyatsiya xatosi: 3 milliard int turi literallari uchun juda katta son.
int a = 3000000000L; 
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
long a = 3_000_000_000L; 
Yaxshi kompilyatsiya qilinadi.
long a = 3_000_000_000; 
Kompilyatsiya xatosi: 3 milliard int turi literallari uchun juda katta son.
int a = 3_000_000_000L; 
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
double a = 100.0; 
Yaxshi kompilyatsiya qilinadi.
double a = 100.;
Yaxshi kompilyatsiya qilinadi.
double a = .0;
Yaxshi kompilyatsiya qilinadi.
float a = 100.0f; 
Yaxshi kompilyatsiya qilinadi.
float a = 100.0; 
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
double a = 100D; 
Yaxshi kompilyatsiya qilinadi.
float a = 100F; 
Yaxshi kompilyatsiya qilinadi.
int a = 300D; 
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
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


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.
"2+3" + "-5"
Bu erda ikki literallar bor. Natijada 2+3-5 satr bo'ladi, ammo son emas
"return" + ";"
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
String s = "Bo'ron tuman bilan osmonni yopadi "
         + "Qor bo'ronlarini aylantirib "
         + "Ba'zida u hayvon kabi qichqiradi "
         + "Ba'zida u boladek yig'laydi";
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
'A'
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.
'\u1f3a'
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.


Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION