Məzmuna keç
Educora
Başlanğıc15 dəq2 / 18

Dəyişənlər, tiplər və operatorlar

Dəyişən elan etməyi öyrən, Java-nın səkkiz primitiv tipi, hesab operatorları və tiplərin çevrilməsi ilə tanış ol.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Dəyişəni tipi ilə elan etmək və ona qiymət mənimsətmək
  • Məsələ üçün uyğun primitiv tipi seçmək
  • Tam bölmə, qalıq və tiplərin çevrilməsi ilə düzgün hesablamalar aparmaq

Onlayn mağaza hər məhsulun adını, qiymətini, anbarda neçə ədəd qaldığını və endirimdə olub-olmadığını yadda saxlamalıdır. Proqramlar belə məlumatı dəyişənlərdə saxlayır. Java-da hər dəyişənin əvvəlcədən məlum olan tipi var və bu tip sonradan dəyişmir — belə dillərə statik tipli dillər deyilir.

Dəyişən elan etmək

Dəyişən yaratmaq üçün əvvəlcə tipi, sonra adı yazırsan və istəsən, = işarəsi ilə dərhal qiymət verirsən: int age = 14;. Sonradan dəyişənə yeni qiymət mənimsətmək olar, amma başqa tipdə qiymət yox: int dəyişəninə mətn yazmaq alınmayacaq.

Java
public class Main {
    public static void main(String[] args) {
        String name = "Leyla";
        int age = 14;
        double height = 1.62;
        boolean isStudent = true;
        char grade = 'A';
        System.out.println(name + " is " + age + " years old.");
        System.out.println("Height: " + height + " m");
        System.out.println("Student: " + isStudent + ", grade: " + grade);
        age = age + 1;
        System.out.println("Next year: " + age);
    }
}
Gözlənilən nəticə
Leyla is 14 years old.
Height: 1.62 m
Student: true, grade: A
Next year: 15

Primitiv tiplər

Java-da səkkiz primitiv tip var — bunlar dilin ən sadə «kərpicləridir». Onlar yaddaşda nə qədər yer tutduqlarına və hansı qiymətləri saxlaya bildiklərinə görə fərqlənir. Tam ədədlər üçün adətən int, kəsr ədədlər üçün isə double seçilir.

TipÖlçüNə saxlayırNümunə
byte8 bit−128-dən 127-yə qədər tam ədədlərbyte level = 5;
short16 bit−32 768-dən 32 767-yə qədər tam ədədlərshort year = 2026;
int32 bittəxminən ±2,1 milyardint people = 10_000_000;
long64 bittəxminən ±9,2 · 10¹⁸long stars = 3_000_000_000L;
float32 bitkəsr ədəd, ~7 rəqəm dəqiqlikləfloat t = 36.6f;
double64 bitkəsr ədəd, ~15–16 rəqəm dəqiqliklədouble price = 9.99;
char16 bitbir simvol (Unicode)char grade = 'A';
boolean–true və ya falseboolean ok = true;
long qiymətinin sonunda L, float qiymətinin sonunda f yazılır. Alt xətt _ böyük ədədləri oxumağı asanlaşdırır.

String bu siyahıda yoxdur: o, primitiv tip deyil, sinifdir — ona görə də böyük hərflə yazılır. Sətirlərlə növbəti dərsdə ətraflı tanış olacaqsan. Diqqət et: char qiyməti tək dırnaqda ('A'), String isə qoşa dırnaqda yazılır.

İnteraktiv
Simulyasiya yüklənir…
byte 8 bitdən ibarətdir. Bitləri yandırıb-söndür: 8 bit 256 fərqli birləşmə verir. Java bu birləşmələrdən −128-dən 127-yə qədər ədədlər üçün istifadə edir.

Hesab operatorları

Java-da +, -, *, / və % (bölmədən alınan qalıq) operatorları var. Ən vacib incəlik budur: iki tam ədədi böləndə nəticə də tam olur, kəsr hissə sadəcə atılır. Yəni 17 / 5 ifadəsinin qiyməti 3.4 deyil, 3-dür.

Java
public class Main {
    public static void main(String[] args) {
        int a = 17;
        int b = 5;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        System.out.println(17.0 / 5);
        int count = 10;
        count += 5;
        count++;
        System.out.println(count);
    }
}
Gözlənilən nəticə
22
12
85
3
2
3.4
16

Ədədlərdən biri kəsr ədəd olan kimi (17.0) nəticə də kəsr olur. count += 5 yazılışı count = count + 5-in qısa formasıdır; -=, *=, /= də eyni qayda ilə işləyir. count++ dəyişəni 1 vahid artırır, count-- isə 1 vahid azaldır.

Nümunə: dəqiqələri saata çevirmək

Film 135 dəqiqə davam edir. Bu müddəti saat və dəqiqə ilə necə göstərmək olar?

Həllini göstər
Saatlar — tam bölmə: 135 / 60 = 2.
Qalan dəqiqələr — qalıq: 135 % 60 = 15.
System.out.println(135 / 60 + " h " + 135 % 60 + " min"); sətri 2 h 15 min çıxarır.

Tiplərin çevrilməsi

Bəzən qiyməti bir tipdən digərinə keçirmək lazım olur. Kiçik tipdən böyük tipə (genişləndirmə, məsələn, int → double) Java özü və itkisiz çevirir. Böyük tipdən kiçik tipə (daraltma, məsələn, double → int) keçəndə isə məlumat itə bilər, ona görə də bunu tipi mötərizədə yazaraq açıq şəkildə tələb etmək lazımdır: (int) price.

Java
public class Main {
    public static void main(String[] args) {
        int apples = 7;
        double d = apples;
        System.out.println(d);
        double price = 9.99;
        int whole = (int) price;
        System.out.println(whole);
        int sum = 7, people = 2;
        System.out.println(sum / people);
        System.out.println((double) sum / people);
        System.out.println((int) 'A');
        System.out.println((char) 66);
        int max = Integer.MAX_VALUE;
        System.out.println(max + 1);
    }
}
Gözlənilən nəticə
7.0
9
3
3.5
65
B
-2147483648
  • (int) 9.99 nəticəsi 9-dur: kəsr hissə yuvarlaqlaşdırılmır, atılır.
  • (double) sum / people ifadəsində əvvəlcə sum double tipinə çevrilir, ona görə bölmə kəsr hissə ilə aparılır: 3.5.
  • char əslində ədəddir: 'A' simvolunun kodu 65-dir, 66 isə 'B' simvoludur.
  • int tipinin ən böyük qiymətinə 1 əlavə edəndə daşma (overflow) baş verir: qiymət ən kiçik mənfi ədədə «fırlanır».

Əsas fikirlər

  • Java statik tiplidir: dəyişən tip ad = qiymət; şəklində elan olunur və tipi dəyişmir.
  • Səkkiz primitiv tip var: byte, short, int, long, float, double, char, boolean; String isə sinifdir.
  • İki tam ədədin bölünməsi tam ədəd verir: 17 / 5 = 3, 17 % 5 = 2.
  • Genişləndirmə avtomatikdir, daraltma üçün isə açıq çevirmə lazımdır: (int) 9.99 = 9.
  • final sabit yaradır, var isə tipi kompilyatorun özünün müəyyən etməsinə imkan verir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
System.out.println(17 / 5); ekrana nə çıxarır?