CodeGym /Kursy /C# SELF /Wprowadzanie z klawiatury

Wprowadzanie z klawiatury

C# SELF
Poziom 2 , Lekcja 5
Dostępny

1. Wstęp

Do tej pory pisaliśmy programy, które były jak radio: coś mówiły, ale w ogóle nie reagowały na twoje słowa. No, daleko tak nie zajedziesz! Większość programów ma na celu zrobić coś przydatnego dla użytkownika. Dlatego bardzo często trzeba, żeby użytkownik mógł coś wpisać z klawiatury.

Na przykład:

  • Kalkulator czeka, aż wpiszesz liczby i operację.
  • Formularze na stronie chcą twoje imię, e-mail i adres, żeby obsłużyć zgłoszenie.
  • Gry komputerowe pytają o imię gracza.

Dzisiaj damy naszej aplikacji mikrofon! Albo uszy, jak kto woli :) Gotowy? Lecimy.

2. Poznajemy Console.ReadLine()

Console.ReadLine() — to funkcja (albo "komenda"), która pozwala programowi pobrać dane, które użytkownik wpisze na klawiaturze.

Kiedy program dochodzi do komendy Console.ReadLine(), zatrzymuje się i... cierpliwie czeka, aż coś wpiszesz i naciśniesz Enter. Wszystko, co wpiszesz przed Enterem, będzie traktowane jako jeden tekst. Ten tekst wraca do programu — jakby użytkownik podał ci karteczkę przez okienko.

Podstawowy przykład

// Zapytaj użytkownika o imię i przywitaj go
Console.WriteLine("Jak masz na imię?");
string userName = Console.ReadLine(); 				// Tutaj program czeka na wpis!

Console.WriteLine("Cześć, " + userName + "!");

Jak to działa:

  • Na ekranie pojawia się: Jak masz na imię?
  • Wpisujesz na przykład Andrzej i naciskasz Enter.
  • Zmiennej userName przypisuje się wartość "Andrzej".
  • Na ekranie pojawia się: Cześć, Andrzej!

Od razu uwaga: wszystko, co zwraca Console.ReadLine() — to ZAWSZE tekst (typ string). Nawet jeśli użytkownik wpisał liczbę, to i tak będzie tekst!

3. Przykłady

Zobaczmy, jak używa się Console.ReadLine() w praktyce.

Przykład 1: wpisujemy imię użytkownika

Console.WriteLine("Wpisz swoje imię:");
string name = Console.ReadLine();
Console.WriteLine("Witamy, " + name + "!");

Przykład 2: wyświetlamy wynik w jednym wierszu

Za pomocą operatora + możesz od razu połączyć tekst i wynik wpisu.

Console.Write("Twój ulubiony kolor: ");
string color = Console.ReadLine();
Console.WriteLine("Super! Twój ulubiony kolor to " + color + ".");
Zwróć uwagę:

w tym przykładzie używamy Console.Write (bez przechodzenia do nowej linii), żeby wpis użytkownika był od razu po pytaniu.

Przykład 3: kilka wpisów pod rząd

Zróbmy mini-ankietę:

Console.Write("Jak masz na imię? ");
string name = Console.ReadLine();

Console.Write("Ile masz lat? ");
string age = Console.ReadLine(); // na razie jako tekst

Console.WriteLine("Nazywasz się " + name + ", i masz " + age + " lat.");

Zobaczysz:

Jak masz na imię? Wika
Ile masz lat? 23
Nazywasz się Wika, i masz 23 lat.

4. Wprowadzanie liczb: konwersja

Tutaj czai się popularna pułapka dla początkujących! Console.ReadLine() zawsze zwraca tekst, nawet jeśli użytkownik wpisał 123.

Jeśli chcesz dostać liczbę, musisz zamienić tekst na odpowiedni typ liczbowy (np. int). W C# używa się do tego metod konwersji, np. int.Parse() albo Convert.ToInt32() — już o tym mówiliśmy na poprzednim wykładzie.

Przykład: pytamy o wiek

Console.Write("Ile masz lat? ");
string input = Console.ReadLine();         // input = "27", na przykład
int age = int.Parse(input);                // Zamieniamy tekst "27" na liczbę 27
Console.WriteLine("Za rok będziesz mieć " + (age + 1));
Uwaga:

jeśli użytkownik wpisze coś, co nie jest liczbą, program wyrzuci błąd (FormatException). Później nauczymy się pisać bardziej odporne programy, ale do prostych eksperymentów to wystarczy.

5. Błędy, na które na pewno trafisz

Zapomniałeś zamienić na liczbę:

Próba użycia wartości z Console.ReadLine() jako liczby bez konwersji.

string input = Console.ReadLine();
int sum = input + 5; // Błąd! Nie można dodać tekstu do liczby.

Trzeba zamienić na int:

int sum = int.Parse(input) + 5;

Zapomniałeś zadeklarować zmienną:

name = Console.ReadLine(); // Błąd! Zmienna name nie została zadeklarowana.

Najpierw trzeba zadeklarować: string name = Console.ReadLine();

Pomyliłeś kolejność wpisu i wyjścia:

Początkujący często robią głupie błędy. Ale profesjonaliści też je robią. Tylko z mądrą miną :)

string name = Console.ReadLine();
Console.WriteLine("Wpisz imię: " + name); // Najpierw trzeba zapytać, potem przeczytać!

Prawidłowa kolejność:

Console.Write("Wpisz imię: ");
string name = Console.ReadLine();
Console.WriteLine("Cześć, " + name);

Przydatna uwaga

Nawet jeśli używasz Console.ReadLine() bez wyświetlania pytania (np. po prostu string x = Console.ReadLine();), program będzie CZEKAŁ na wpis. Ale użytkownik nie będzie wiedział, co ma wpisać! Dlatego zawsze dawaj mu jasną podpowiedź za pomocą Console.Write() albo Console.WriteLine().

1
Ankieta/quiz
Poznawanie typów int i string, poziom 2, lekcja 5
Niedostępny
Poznawanie typów int i string
Poznawanie typów int i string
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION