Akceptowanie danych wejściowych użytkownika
Wskazówka
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Programy stają się naprawdę potężne, gdy mogą wchodzić w interakcję z ludźmi, którzy z nich korzystają. Metoda języka C# Console.ReadLine() umożliwia wstrzymanie programu, oczekiwanie na wpisanie czegoś przez użytkownika i przechwycenie tych informacji.
Korzystanie z metody Console.ReadLine()
Pomyśl o metodzie Console.ReadLine() jak o podpowiedzi do pytania. Gdy program osiągnie ten wiersz, czeka na wpisanie odpowiedzi przez użytkownika i naciśnięcie klawisza Enter przed kontynuowaniem.
Aby zapisać odpowiedź użytkownika, musisz go "przechwycić" przy użyciu zmiennej:
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
W tym kodzie favoriteColor jest zmienną (kontener, który przechowuje wartość). Po uruchomieniu tego programu czeka na dane wejściowe. Jeśli użytkownik wpisze Orange i naciśnie klawisz Enter, dane wyjściowe to:
Orange
Oh, I love Orange too!
Możesz spróbować uruchomić ten kod samodzielnie w edytorze kodu języka C#.
Dodaj spację na końcu monitu
Aby dane wejściowe użytkownika były bardziej czytelne, połącz Console.Write() z Console.ReadLine():
Console.Write("What is your favorite color? ");
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
Zwróć uwagę na spację na końcu monitu: "What is your favorite color? ". Bez niego wpis użytkownika wyglądałby, jakby był przyklejony do Twojego tekstu: What is your favorite color?Orange. Dodanie spacji sprawia, że jest to bardziej czytelne.
Opis typów danych
Każda wartość w języku C# ma typ danych, który informuje komputer o rodzaju wartości. Oto niektóre typowe typy danych:
-
Ciąg (
string): tekst owinięty cudzysłowami, na przykład"Blue"lub"25". Nawet liczba staje się tekstem, gdy znajduje się wewnątrz cudzysłowów. -
Liczba całkowita (
int): liczba całkowita bez cudzysłowów, na przykład25lub100. Możesz wykonywać na nich obliczenia.
Dlaczego ma to znaczenie? Język C# traktuje te typy inaczej. Możesz dodawać liczby (25 + 1 równa się 26), ale nie możesz bezpośrednio dodać liczby do tekstu bez specjalnego traktowania.
Console.ReadLine() zawsze zwraca ciąg
Podstawową regułą do zapamiętania jest to, że Console.ReadLine()zawsze zwraca tekst (ciąg), nawet jeśli użytkownik wpisze liczbę. Przykład:
string age = Console.ReadLine();
Console.WriteLine(age + 1); // This causes an error!
Jeśli uruchomisz ten kod i wpiszesz 25, program nie wyświetli 26. Zamiast tego próbuje dodać 1 do tekstu "25", czego język C# nie dopuszcza. Jest to typowy błąd dla początkujących!
Aby wykonać obliczenia matematyczne z danymi wejściowymi użytkownika, najpierw należy przekonwertować tekst na liczbę — ale omówimy to później. Na razie pamiętaj: niezależnie od typu użytkownika jest zawsze traktowany jako tekst.