> For the complete documentation index, see [llms.txt](https://java.zikrulla.uz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://java.zikrulla.uz/ilk-qadamlar/1.1-java-asoslari-ozgaruvchilar-va-math-kutubxonasi.md).

# #1.1 JAVA ASOSLARI, O'ZGARUVCHILAR VA MATH KUTUBXONASI

*Mehribon va rahimli Alloh nomi bilan foydali ilm o'rganish niyatida boshlaymiz.*

Birinchi qismda biz muhitni tayyorlab, "Hello, World!" yozuvini ekranga chiqardik. Endi bevosita dasturlashning "g'ishtlari" bo'lgan o'zgaruvchilar, izohlar, matematik funksiyalar va ma'lumotlarni qabul qilish usullari bilan tanishamiz.

{% embed url="<https://youtu.be/H31nmovnwL4>" %}

### 📝 1. Izohlar (Comments) qoldirish

Dasturlashda hamma yozgan narsamiz ham kompyuter uchun bo'lmaydi. Ba'zida kodni nima ish qilishini tushuntirish uchun o'zimiz yoki boshqa dasturchilar uchun yozuvlar qoldiramiz. Kompilyator bu yozuvlarni o'qimaydi va o'tkazib yuboradi.

* Bitta qatorli izoh: `//` belgisi orqali yoziladi.
* Ko'p qatorli izoh: `/*` bilan boshlanib, `*/` bilan tugaydi.

```java
// Bu yerda foydalanuvchi yoshi tekshirilyapti
/* Bu kod 17.06.2026 da yozilgan.
   Muallif: Zikrulla Yashinov 
*/
```

### 🖨 2. Ekranga chiqarish usullari

Java'da ma'lumotlarni konsolga chiqarishning bir nechta turlari bor:

* `System.out.print()` — matnni chiqaradi, lekin keyingi qatorga tushmaydi.
* `System.out.println()` — matnni chiqaradi va avtomatik yangi qatorga tushadi.
* `System.out.printf()` — matnni formatlab chiqarish uchun ishlatiladi (masalan, `%s` o'rniga so'z qo'yadi).

Matnlarni ulash (Concatenation): Matnlarni yoki matn va sonni birlashtirish uchun `+` belgisidan foydalanamiz.

```java
System.out.print("Hello Girls ");
System.out.println("Amina"); // Natija: Hello Girls Amina

System.out.println("Hello " + "Mavluda");
System.out.printf("Hello %s", "Bekzod");

// Qiziq holat: Matn va son qo'shilsa, son ham matnga aylanadi!
System.out.println("12" + 4); // Natija: 124 bo'ladi, 16 emas!
```

### 🧮 3. O'zgaruvchilar va Arifmetik amallar

O'zgaruvchilar ma'lumot saqlaydigan qutilardir. Sonlar uchun `byte`, `short`, `int`, `long` (butun) hamda `float`, `double` (haqiqiy/kasr) turlaridan foydalanamiz.

Asosiy arifmetik amallar: qo'shish `+`, ayirish `-`, ko'paytirish `*`, bo'lish `/`.

Qoldiqni topish `%`: Bo'lish amalidan ortib qolgan qoldiqni beradi. (Masalan: 125 ni 30 ga bo'lsak, 4 tadan tegadi va 5 qoldiq qoladi).

```java
long son1 = 13;
son1 += 250; // son1 = son1 + 250 degani

System.out.println(124 * 30);
System.out.println(125 / 30); // Natija: 4 (Butun qismi)
System.out.println(125 % 30); // Natija: 5 (Qoldiq qismi)

float vazn = 70.4f;
double boyi = 134.5;
System.out.println(vazn / boyi);
```

### 📐 4. Math kutubxonasi

Matematikadagi murakkabroq amallarni bajarish uchun Java'da tayyor `Math` klassi mavjud:

* `Math.abs()` — Sonning modulini (musbat holatini) qaytaradi.
* `Math.sqrt()` — Sondan kvadrat ildiz chiqaradi.
* `Math.pow(a, b)` — $$ $a$ $$ sonini $$ $b$ $$ darajaga ko'taradi.
* `Math.PI` — Pi ($$ $\pi$ $$) sonining aniq qiymatini beradi.

Java

```java
int abs = Math.abs(-65);           // Natija: 65
double kvartIldiz = Math.sqrt(64); // Natija: 8.0
double daraja = Math.pow(5, 2);    // 5 ning kvadrati, Natija: 25.0
double PI = Math.PI;               // 3.14159...

System.out.println(abs);
System.out.println(daraja);
```

### 🔠 5. Belgi (char) va Mantiq (boolean)

#### Char va ASCII

`char` ma'lumot turi o'zida faqat bitta belgi saqlaydi. Har bir belgi orqasida kompyuter xotirasida son (ASCII kod) yashiringan bo'ladi. Biz ularni bir-biriga o'zgartirishimiz mumkin:

Java

```java
char belgi = '3';
System.out.println((int) belgi); // '3' belgisining raqamli kodi (masalan: 51) chiqadi
System.out.println((char) 52);   // 52 raqamiga mos keluvchi belgi (masalan: '4') chiqadi
```

#### Boolean va Mantiq

`boolean` turi faqat `true` (rost) yoki `false` (yolg'on) qiymat qabul qiladi.

* `&&` (AND / Va) — Ikkala tomon ham `true` bo'lsagina `true` chiqadi (1 & 1 = 1).
* `||` (OR / Yoki) — Bitta tomon `true` bo'lsa ham yetarli (1 | 0 = 1).

```java
boolean qiymatTogrimi1 = true;
boolean qiymatTogrimi2 = false;

System.out.println(qiymatTogrimi1 && qiymatTogrimi2); // false
System.out.println(qiymatTogrimi1 || qiymatTogrimi2); // true
```

### ⌨️ 6. Foydalanuvchidan ma'lumot olish (Scanner)

Dasturimiz bizdan nimadir so'rashi uchun `Scanner` klassidan foydalanamiz.

* `nextInt()` — Butun son o'qish uchun.
* `next()` — Bitta so'z o'qish uchun.
* `nextLine()` — Butun boshli qatorni (matnni) o'qish uchun.

```java
import java.util.Scanner; // Dastur boshida ulash shart!

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Birinchi so'zni kiriting: ");
        String soz1 = scanner.next();
        
        System.out.print("Ikkinchi so'zni kiriting: ");
        String soz2 = scanner.next();
        
        System.out.println("Natija: " + soz1 + " " + soz2);
    }
}
```

***

🌐 **Dars muallifi:** [Zikrulla Yashinov](https://zikrulla.uz) | Boshqa loyihalar va bog'lanish uchun


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://java.zikrulla.uz/ilk-qadamlar/1.1-java-asoslari-ozgaruvchilar-va-math-kutubxonasi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
