1. Giriş
İndiyə qədər yazdığımız proqramlar radioya bənzəyirdi: nəsə deyirdilər, amma sənin sözlərinə heç reaksiya vermirdilər. Təbii ki, bununla uzağa getmək olmaz! Əksər proqramların məqsədi istifadəçi üçün nəsə faydalı etməkdir. Ona görə də çox vaxt istifadəçinin klaviaturadan məlumat daxil etməsi lazımdır.
Məsələn:
- Kalkulyator gözləyir ki, sən rəqəmləri və əməliyyatı daxil edəsən.
- Saytdakı formalar sənin FİO, e-mail və poçtunu gözləyir ki, müraciəti işləsin.
- Kompüter oyunları oyunçunun adını soruşur.
Bu gün tətbiqimizə mikrofon verəcəyik! Yaxud qulaq, kimə necə rahatdır :) Hazırsan? Başlayaq.
2. Console.ReadLine() ilə tanışlıq
Console.ReadLine() — proqramın istifadəçidən klaviaturada daxil etdiyi məlumatı almasına imkan verən funksiya (və ya "komanda")dır.
Proqramın icrası Console.ReadLine() komandasına çatanda, proqram dayanır və... səbirli şəkildə gözləyir ki, sən nəsə yazıb Enter düyməsini basasan. Enter-ə qədər yazdığın hər şey bir sətir mətn kimi qəbul olunur. Bu sətir proqramda geri qaytarılır — sanki istifadəçi sənə pəncərədən bir kağız ötürür.
Əsas nümunə
// İstifadəçidən adını soruşaq və onu salamlayıq
Console.WriteLine("Adın nədir?");
string userName = Console.ReadLine(); // Burada proqram daxil etməni gözləyir!
Console.WriteLine("Salam, " + userName + "!");
Necə işləyir:
- Ekranda görünür: Adın nədir?
- Sən məsələn, Əndər yazırsan və Enter basırsan.
- userName dəyişəni "Əndər" dəyərini alır.
- Ekranda görünür: Salam, Əndər!
Dərhal qeyd: Console.ReadLine() nə qaytarırsa — HƏMİŞƏ sətirdir (string tipi). İstifadəçi rəqəm də daxil etsə, o yenə də sətir olacaq!
3. Nümunələr
Gəlin Console.ReadLine() necə istifadə olunur, baxaq.
Nümunə 1: istifadəçi adını daxil edir
Console.WriteLine("Adınızı daxil edin:");
string name = Console.ReadLine();
Console.WriteLine("Xoş gəlmisiniz, " + name + "!");
Nümunə 2: nəticəni bir sətirdə çıxarırıq
+ operatoru ilə mətn və daxil etmə nəticəsini birləşdirə bilərsən.
Console.Write("Sevdiyiniz rəng: ");
string color = Console.ReadLine();
Console.WriteLine("Əla! Sevdiyiniz rəng - " + color + ".");
bu nümunədə Console.Write (yeni sətrə keçmədən) istifadə olunur ki, istifadəçi sualdan dərhal sonra daxil etsin.
Nümunə 3: ardıcıl bir neçə daxil etmə
Gəlin mini-anket düzəldək:
Console.Write("Adınız nədir? ");
string name = Console.ReadLine();
Console.Write("Neçə yaşınız var? ");
string age = Console.ReadLine(); // hələlik sətir kimi
Console.WriteLine("Sizin adınız " + name + ", və sizin " + age + " yaşınız var.");
Belə görəcəksən:
Adınız nədir? Vika
Neçə yaşınız var? 23
Sizin adınız Vika, və sizin 23 yaşınız var.
4. Rəqəmsal məlumatın daxil edilməsi: konvertasiya
Burada yeni başlayanlar üçün məşhur tələ var! Console.ReadLine() həmişə sətir qaytarır, istifadəçi 123 daxil etsə belə.
Əgər rəqəm almaq istəyirsənsə, sətiri uyğun rəqəm tipinə (məsələn, int) çevirməlisən. Bunun üçün C#-da konvertasiya metodları istifadə olunur, məsələn, int.Parse() və ya Convert.ToInt32() — biz bunu keçən dərsdə danışmışdıq.
Nümunə: yaş soruşuruq
Console.Write("Neçə yaşınız var? ");
string input = Console.ReadLine(); // input = "27", məsələn
int age = int.Parse(input); // "27" sətirini 27 rəqəminə çeviririk
Console.WriteLine("Bir ildən sonra sizin " + (age + 1));
əgər istifadəçi rəqəm daxil etməsə, proqram xəta atacaq (FormatException). Sonra daha etibarlı kod yazmağı öyrənəcəyik, amma sadə təcrübələr üçün bu kifayətdir.
5. Mütləq rastlaşacağın səhvlər
Rəqəmə çevirməyi unutmaq:
Console.ReadLine() nəticəsini rəqəm kimi çevirmədən istifadə etməyə cəhd.
string input = Console.ReadLine();
int sum = input + 5; // Səhv! Sətiri rəqəmlə toplamaq olmaz.
int-ə çevirmək lazımdır:
int sum = int.Parse(input) + 5;
Dəyişəni elan etməyi unutmaq:
name = Console.ReadLine(); // Səhv! name dəyişəni elan olunmayıb.
Əvvəlcə elan etmək lazımdır: string name = Console.ReadLine();
Daxil etmə və çıxışın ardıcıllığını qarışdırmaq:
Yeni başlayanlar tez-tez gülməli səhvlər edirlər. Amma peşəkarlar da edir. Sadəcə ağıllı üzlərlə :)
string name = Console.ReadLine();
Console.WriteLine("Adı daxil edin: " + name); // Əvvəl soruşmaq, sonra oxumaq lazımdır!
Düzgün ardıcıllıq:
Console.Write("Adı daxil edin: ");
string name = Console.ReadLine();
Console.WriteLine("Salam, " + name);
Faydalı qeyd
Hətta Console.ReadLine()-ı sual çıxarmadan istifadə etsən də (məsələn, sadəcə string x = Console.ReadLine();), proqram DAXİL ETMƏNİ gözləyəcək. Amma istifadəçi başa düşməyəcək ki, nə daxil etməlidir! Ona görə həmişə ona Console.Write() və ya Console.WriteLine() ilə aydın ipucu ver.
GO TO FULL VERSION