Məzmuna keç
Educora
Başlanğıc18 dəq2 / 16

Dəyişənlər, tiplər və sətirlər

Qiymətləri dəyişənlərdə saxla, əsas tipləri və `var`-ı tanı, ədədləri çevir və interpolyasiya ilə səliqəli mətnlər qur.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Dəyişən elan etmək və ona qiymət mənimsətmək
  • int, double, decimal, bool, char, string və var arasında düzgün seçim etmək
  • Tipləri çevirmək: (double) yazılışı və int.Parse
  • Sətir interpolyasiyası, formatlar və sətir metodlarından istifadə etmək

Oyunda oyunçunun adı, xalı, qalan canları və səviyyəsi var. Proqram bu məlumatları harasa yazmalı və oyun gedişində dəyişməlidir. Bunun üçün dəyişənlərdən istifadə olunur. C#-da hər dəyişənin bir tipi var — o, dəyişəndə hansı növ qiymət saxlana biləcəyini müəyyən edir.

Dəyişənlər

Dəyişən elan etmək üçün əvvəlcə tipi, sonra adı yazılır, = işarəsi ilə isə ona qiymət mənimsədilir. Sonradan dəyişənə yeni qiymət vermək olar, amma yalnız eyni tipdən. Adlar adətən kiçik hərflə başlayır, növbəti sözlər isə böyük hərflə yazılır: playerName, livesLeft.

C#
string playerName = "Leyla";
int score = 0;
int livesLeft = 3;
bool isGameOver = false;

score = score + 50;
score += 25;
livesLeft--;

Console.WriteLine(playerName);
Console.WriteLine(score);
Console.WriteLine(livesLeft);
Console.WriteLine(isGameOver);
Gözlənilən nəticə
Leyla
75
2
False
  • score += 25 — score = score + 25-in qısa yazılışıdır; -=, *= və /= da var.
  • livesLeft-- qiyməti 1 azaldır, ++ isə 1 artırır.
  • bool qiyməti ekranda böyük hərflə görünür: True və ya False, kodda isə kiçik hərflə yazılır: true, false.

Əsas tiplər

TipNə saxlayırNümunə
inttam ədədlər (təxminən ±2,1 milyarda qədər)int age = 12;
longçox böyük tam ədədlərlong views = 3_000_000_000;
doublekəsr ədədlər (ölçmələr, elmi hesablamalar)double height = 1.52;
decimalpul və dəqiq onluq hesablamalardecimal price = 4.99m;
boolməntiqi qiymət: true və ya falsebool isOpen = true;
charbir simvol, tək dırnaqdachar grade = 'A';
stringmətn, qoşa dırnaqdastring city = "Baku";

`var` və `const`

Tip sağ tərəfdən aydın görünürsə, onun yerinə var yazmaq olar — kompilyator tipi özü müəyyən edir. Bu, tipsiz dəyişən demək deyil: var city = "Baku"; yazdıqdan sonra city həmişəlik string olaraq qalır. Heç vaxt dəyişməməli olan qiymətlər üçün isə const istifadə olunur.

C#
var city = "Baku";
var year = 2026;
var price = 2.5m;
const int DaysInWeek = 7;

Console.WriteLine(city.GetType().Name);
Console.WriteLine(year.GetType().Name);
Console.WriteLine(price.GetType().Name);
Console.WriteLine(DaysInWeek * 4);
Gözlənilən nəticə
String
Int32
Decimal
28

GetType().Name tipin .NET-dəki adını göstərir: int əslində Int32-nin, string isə String-in qısa adıdır. city = 5; yazmağa cəhd etsən, kompilyator CS0029 xətası verəcək: int tipini string-ə çevirmək olmaz. DaysInWeek = 8; yazmaq isə ümumiyyətlə qadağandır, çünki bu, sabitdir.

Ədədlər və çevirmələr

Artıq bilirsən ki, 7 / 2 nəticədə 3 verir. Kəsr nəticə lazımdırsa, ədədlərdən birini double-a çevir: (double)7 / 2. Bu yazılışa tipin çevrilməsi (cast) deyilir. Əks istiqamətdə (int)3.99 kəsr hissəni atır və 3 verir — yuvarlaqlaşdırmır! Mətni ədədə çevirmək üçün int.Parse, ədədi mətnə çevirmək üçün isə ToString() işlədilir.

C#
using System.Globalization;

CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;

int apples = 7;
int friends = 2;
Console.WriteLine(apples / friends);
Console.WriteLine((double)apples / friends);
Console.WriteLine((int)3.99);
Console.WriteLine(Math.Round(3.99));

int year = int.Parse("2026");
Console.WriteLine(year + 1);
Console.WriteLine(year.ToString() + "!");
Gözlənilən nəticə
3
3.5
3
4
2027
2026!

Sətirlər və interpolyasiya

Mətni + ilə yığmaq tez yorucu olur. Sətir interpolyasiyası daha rahatdır: sətirdən əvvəl $ qoyulur, dəyişənlər və ifadələr isə fiqurlu mötərizələrin içində birbaşa mətnə yazılır. Mötərizədə iki nöqtədən sonra format vermək olar: F2 — onluq ayırıcıdan sonra iki rəqəm, N0 — minliklərə bölünmüş tam ədəd.

C#
using System.Globalization;

CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;

string name = "Murad";
int score = 95;
decimal price = 4.5m;
int views = 1234567;

Console.WriteLine("Hi, " + name + "!");
Console.WriteLine($"{name} scored {score} points.");
Console.WriteLine($"Next time: {score + 5}");
Console.WriteLine($"3 tickets: {price * 3:F2} AZN");
Console.WriteLine($"Views: {views:N0}");
Gözlənilən nəticə
Hi, Murad!
Murad scored 95 points.
Next time: 100
3 tickets: 13.50 AZN
Views: 1,234,567

Sətir də obyektdir və onun faydalı xassə və metodları var. Diqqət: sətirlər dəyişməzdir — ToUpper() kimi metodlar orijinalı dəyişmir, yeni sətir qaytarır. Simvollara indekslə müraciət olunur, sayma isə sıfırdan başlayır.

C#
string city = "  Baku  ";
string clean = city.Trim();

Console.WriteLine(clean.Length);
Console.WriteLine(clean.ToUpper());
Console.WriteLine(clean.Contains("ak"));
Console.WriteLine(clean.Replace("Baku", "Ganja"));
Console.WriteLine(clean[0]);
Console.WriteLine($"[{city}]");
Gözlənilən nəticə
4
BAKU
True
Ganja
B
[  Baku  ]
Son sətir göstərir ki, Trim() orijinal city sətrini dəyişməyib.

Əsas fikirlər

  • Dəyişənin tipi, adı və qiyməti olur: int score = 0;.
  • Tam ədədlər üçün int, kəsrlər üçün double, pul üçün decimal, mətn üçün string seç.
  • var tipi kompilyatora təyin etdirir, amma dəyişənin tipi sonradan dəyişmir; const dəyişməz qiymətdir.
  • (double) və int.Parse tipləri çevirir; (int)3.99 yuvarlaqlaşdırmır, 3 verir.
  • $ ilə interpolyasiya mətn qurmağın ən rahat yoludur; {x:F2} iki onluq rəqəm göstərir.
  • Sətirlər dəyişməzdir: ToUpper(), Trim(), Replace() yeni sətir qaytarır.

Özünü yoxla

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

1 / 10
Pul məbləğləri üçün hansı tip ən uyğundur?