#2 Naucz się C# razem ze mną - Zmienne

in #polish7 years ago (edited)

Zmienne.png

Naucz się C# razem ze mną!

#2 Zmienne

Hej!

Na samym początku chciałbym przeprosić wszystkich którzy czekali na kolejnego posta z tej serii - szczerze to nie mam nic na swoje usprawiedliwienie. Jeśli pierwszy post Cię ominął - zachęcam do rzucenia okiem (link niżej). Tymczasem pozwolę sobie płynnie i z gracją przejść do tematu dzisiejszego wpisu :D. Zaczynajmy!

Czym jest zmienna?

Lubię myśleć o zmiennych jako o pudełkach gdzie mogę coś umieścić, i to tam jest.
Jeśli chodzi o bardziej książkowe definicje, to zmienna jest obszarem w pamięci komputera, gdzie możemy przypisać jakąś wartość. Wartość zmiennej może zmieniać się w czasie działania programu (tutaj nic odkrywczego, bo sama nazwa “zmienna” na to wskazuje).

Typy zmiennych

Typ zmiennej mówi nam o tym, co dana zmienna jest w stanie przechować.
Wyróżniamy:
TypyTabelka.png
Najczęściej korzystamy z typów: int, string, float oraz double.
Float i double wykorzystujemy w obliczeniach naukowych, a typ decimal wykorzystywany jest w obliczeniach finansowych.

Deklaracja zmiennej
Poznaliśmy właśnie typy zmiennych, więc śmiało możemy stworzyć naszą pierwszą zmienną.
Szablon wygląda tak:

typ_zmiennej nazwaZmiennej;

A w praktyce;

string name;
int age;
float height;

Operacje na zmiennych

  • Przypisanie
int a;
a=10;
Console.WriteLine(a); //10

lub równoznaczne

int a=10;
Console.WriteLine(a); // też 10

Pamiętajmy, że jeśli zmienna z której chcemy skorzystać nie ma przypisanej wartości, to będziemy mieć kłopoty.

int a;
Console.WriteLine(a); 

Zwróci nam soczysty błąd, ponieważ w naszym “pudełku” o nazwie “a” jeszcze nic nie umieściliśmy, więc komputer nie będzie wiedział co ma wypisać na ekran.

Skoro przypisanie mamy za sobą, pora na:

  • Dodawanie
int a = 10;
int b = 15;
int c = a + b;
Console.WriteLine(c); //25

Myślę, że nie wymaga to tłumaczenia.

Z fajnych rzeczy które oszczędzają biedne palce leniwych programistów, to:

  • Gdy zwiększamy naszą zmienną o jakąś wartość, możemy zrobić to tak:
int a=10;
a = a+5;
Console.WriteLine(a); //15

Ale równoznaczny z takim zapisem, jest ten:

int a=10;
a+=5;
Console.WriteLine(a); //też 15
  • Gdy zwiększamy naszą zmienną o 1:
 int a = 10;
a++;  
Console.WriteLine(a); //11

++ przy naszej zmiennej oznacza zwiększenie wartości zmiennej o 1, i ma to nawet swoją nazwę - inkrementacja. Warto zapamiętać tę nazwę.

Analogicznie jest z -- :

int a=10;
a--;
Console.WriteLine(a); //9

Z tym, że to nazywamy już dekrementacją.

I tak przeszliśmy do kolejnej operacji jaką jest

  • Odejmowanie

Wszystko działa tu tak samo jak w przypadku dodawania, a ponieważ szanuję wasz czas, przechodzimy kolejnej operacji jaką jest:

  • Mnożenie

W tym wypadku też nic niesamowitego, kodzik:

int a = 5;
int b = 3;
int c = a*b;
Console.WriteLine(c); //15

I podobnie jak we wcześniejszych przypadkach, gdy mnożymy naszą zmienną przez jakąś liczbę, to robimy to zgrabnie w ten sposób:

int a = 5;
a *= 3;
Console.WriteLine(a); //15
  • Dzielenie

Dopóki nie dzielimy przez 0, wszystko odbywa się na tych samych zasadach co mnożenie:

float a = 5f;
float b = 2f;
float c = a/b;
Console.WriteLine(c); //2.5

Gdy podzielimy przez 0 to możemy się spodziewać kłopocików, dowiemy się jednak niedługo jak sobie z tym radzić (mam nadzieję, że nie zrobię teraz kolejnej długiej przerwy w pisaniu).

Dlaczego przy wartości zmiennej a oraz b stoi literka f?
W tym momencie najlepiej po prostu przyjąć, że tak ma być, i bez tego nasz program może się nie skompilować. Jeśli jesteś dociekliwy, to literka f jest nam potrzebna do tego, żeby powiedzieć kompilatorowi że wartość którą wpisujemy jest na pewno typu float, ponieważ w C# domyślnie wartość rzeczywista jest typu double. Bez literki “f” po naszej wartości, kompilator może (ale nie musi) się zbuntować, bo myśli, że próbujemy przypisać do typu float wartość double. Mamy jeszcze jeden taki popularny przypadek, gdy do typu double chcemy przypisać liczbę bez rozwinięcia dziesiętnego, czyli najprościej mówiąc inta. Wtedy po wartości musimy dopisać literkę “d”:
double a = 3d;

  • Reszta z dzielenia
Operatorem jest w tym wypadku “%”
int a = 10;
int b = 3;
int c = a%b;
Console.WriteLine(c); //1

Ponadto, możemy dodawać do siebie łańcuchy znaków, czyli stringi do stringów. Taką operację nazywamy konkatenacją.
Kodzik:

string a = “Ala ”;
string b = a + “ma kota”;
Console.WriteLine(b); // Ala ma kota 

Krótko o nazywaniu zmiennych

  • Nazwą zmiennej nie może być słowo kluczowe języka C#. Słowo kluczowe to nazwa mająca dla kompilatora specjalne znaczenie, więc kompilator odrobinę głupieje gdy użyjemy keyworda jako zwykłej nazwy.
    Lista słów kluczowych
  • Jeśli jednak już musi, to dla uniknięcia kolizji stawiamy @ przed nazwą,
    np. string @event.
  • Ważne jest, aby nazwy zmiennych były self-descriptive, to jest opisywały swoją nazwą przeznaczenie. W tym poście stosowałem nazwy zmiennych typu “a”, “b”, “c”, ze względu na to, że używałem ich do przedstawienia pewnych przykładów. Nazwy te nie są jednak zgodne z dobrą praktyką programowania. Starajmy się nazywać zmienne tak, aby ktoś po przeczytaniu naszego kodu od razu wiedział za co dana zmienna odpowiada (przykład: string userName; - możemy się od razu domyślić za co będzie odpowiedzialna ta zmienna).
  • camelCase. Używaj tej konwencji notacji przy nazywaniu zmiennych. Polega ona w na tym, że kolejne wyrazy pisane są łącznie, i rozpoczynamy każdy kolejny wyraz wielką literą (oprócz pierwszego). wyglądaToTak.

Dotarliśmy do końca

Uff. To chyba wszystko co chciałem Ci na początek przekazać. Poniżej link do wcześniejszego posta z tego cyklu. Zachęcam do komentowania i upvote’owania, jeśli uważasz, że to co robię jest tego warte :D. Jednocześnie jeśli dotrwałeś do tego momentu i to czytasz to dziękuję, i mam nadzieję, że odwiedzisz mojego bloga za niedługo przy okazji nowego artykułu :).
Cześć!

Poprzednie posty z tej serii:
#1 Piszemy pierwszy program