Correct dedication capitalization and enhance explanations in programming book content
This commit is contained in:
136
main.typ
136
main.typ
@@ -16,7 +16,7 @@
|
|||||||
],
|
],
|
||||||
preface: [
|
preface: [
|
||||||
#align(center + horizon)[
|
#align(center + horizon)[
|
||||||
Książkę dedykuję mojemu dziadkowi, #linebreak() który wprowadził mnie w świat programowania.
|
Książkę dedykuję mojemu Dziadkowi, #linebreak() który wprowadził mnie w świat programowania.
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
bibliography: bibliography("refs.bib"),
|
bibliography: bibliography("refs.bib"),
|
||||||
@@ -58,7 +58,7 @@ Te dwa wiersze kodu wystarczą, aby wyświetlić tekst na ekranie. Niesamowite,
|
|||||||
1. `using System;` - Ten wiersz importuje przestrzeń nazw `System`, która zawiera podstawowe klasy i funkcje, takie jak `Console`. Dzięki temu możemy wyświetlić na podstawowym urządzaniu wyjściowym (zazwyczaj jest to ekran konsoli) tekst.
|
1. `using System;` - Ten wiersz importuje przestrzeń nazw `System`, która zawiera podstawowe klasy i funkcje, takie jak `Console`. Dzięki temu możemy wyświetlić na podstawowym urządzaniu wyjściowym (zazwyczaj jest to ekran konsoli) tekst.
|
||||||
2. `Console.WriteLine("Hello, World!");` - Ta linia kodu wywołuje metodę `WriteLine` klasy `Console`, która wyświetla tekst przekazany jako argument. W tym przypadku, przekazujemy tekst `"Hello, World!"`, który zostanie wyświetlony na ekranie. Co więcej, metoda `WriteLine` automatycznie dodaje znak nowej linii po wyświetleniu tekstu, więc kursor przechodzi do następnej linii.
|
2. `Console.WriteLine("Hello, World!");` - Ta linia kodu wywołuje metodę `WriteLine` klasy `Console`, która wyświetla tekst przekazany jako argument. W tym przypadku, przekazujemy tekst `"Hello, World!"`, który zostanie wyświetlony na ekranie. Co więcej, metoda `WriteLine` automatycznie dodaje znak nowej linii po wyświetleniu tekstu, więc kursor przechodzi do następnej linii.
|
||||||
|
|
||||||
Okej, ale hola hola, bardzo dużo nowych pojęć, czym są te wszystkie "przestrzenie nazw", "klasy" i "metody"? Spokojnie, wszystko to omówimy w dalszej części książki. Na razie skupmy się na tym, że ten prosty program pokazuje, jak można za pomocą kodu sterować komputerem i wyświetlać informacje na ekranie.
|
Okej, ale to nadal brzmi jak czarna magia, prawda? Spróbuję wyjaśnić to nastepującą analogią. Ten wiersz informuje komputer, ze hej, będę uzywał standardowego zestawu narzędzi o nazwie `System`. `Console` to jedno z tych narzedzi (jak mlotek), a `WriteLine()` to konkretna czynność, którą tym narzedziem wykonujemy ("uderz w gwozdz z napisem `Hello World`").
|
||||||
|
|
||||||
Istotna uwaga, w wielu językach programowania, w tym w C\#, każda linia kodu kończy się średnikiem (`;`). To sygnalizuje kompilatorowi, że to koniec instrukcji. Pamiętaj o tym, ponieważ pominięcie średnika spowoduje błąd podczas kompilacji.
|
Istotna uwaga, w wielu językach programowania, w tym w C\#, każda linia kodu kończy się średnikiem (`;`). To sygnalizuje kompilatorowi, że to koniec instrukcji. Pamiętaj o tym, ponieważ pominięcie średnika spowoduje błąd podczas kompilacji.
|
||||||
== Czym jest program?
|
== Czym jest program?
|
||||||
@@ -66,47 +66,18 @@ Kompilacja? Błąd? O co chodzi? Takie pytania pewnie pojawiły się w Twojej g
|
|||||||
|
|
||||||
Program to nic innego jak zestaw instrukcji, które komputer może wykonać. Instrukcje te są napisane w języku programowania, który jest zrozumiały dla ludzi, ale musi zostać przetłumaczony na język maszynowy, który jest zrozumiały dla komputera. Ten proces tłumaczenia nazywa się kompilacją. Kiedy program jest skompilowany, powstaje plik wykonywalny, który można uruchomić na komputerze.
|
Program to nic innego jak zestaw instrukcji, które komputer może wykonać. Instrukcje te są napisane w języku programowania, który jest zrozumiały dla ludzi, ale musi zostać przetłumaczony na język maszynowy, który jest zrozumiały dla komputera. Ten proces tłumaczenia nazywa się kompilacją. Kiedy program jest skompilowany, powstaje plik wykonywalny, który można uruchomić na komputerze.
|
||||||
|
|
||||||
|
Bardzo istotne jest, by pamiętać, ze program wykonuje się od góry do dołu.
|
||||||
|
Zaczyna się od punktu wejścia, często jest to funkcja `main()`.
|
||||||
|
|
||||||
Natomiast nie wszystkie języki programowania wymagają kompilacji. Niektóre języki, takie jak Python czy JavaScript, są interpretowane, co oznacza, że instrukcje są tłumaczone na język maszynowy przez specjalny program zwany interpreterem, w czasie rzeczywistym, podczas uruchamiania programu. Programy w językach interpretowanych wymagają od użytkownika posiadania interpretera zainstalowanego na komputerze, oraz często są wolniejsze od programów skompilowanych.
|
Natomiast nie wszystkie języki programowania wymagają kompilacji. Niektóre języki, takie jak Python czy JavaScript, są interpretowane, co oznacza, że instrukcje są tłumaczone na język maszynowy przez specjalny program zwany interpreterem, w czasie rzeczywistym, podczas uruchamiania programu. Programy w językach interpretowanych wymagają od użytkownika posiadania interpretera zainstalowanego na komputerze, oraz często są wolniejsze od programów skompilowanych.
|
||||||
|
|
||||||
Warto wspomnieć, że między kompilacją, a uruchomieniem programu, występuje jeszcze etap linkowania, który polega na dołączeniu do naszego programu dodatkowych bibliotek, które dostarczają dodatkową funkcjonalność. Na przykład, w naszym pierwszym programie, linia `using System;` wskazuje, że korzystamy z biblioteki `System`, która zawiera klasę `Console` i jej metodę `WriteLine`.
|
Warto wspomnieć, że między kompilacją, a uruchomieniem programu, występuje jeszcze etap linkowania, który polega na dołączeniu do naszego programu dodatkowych bibliotek, które dostarczają dodatkową funkcjonalność. Na przykład, w naszym pierwszym programie, linia `using System;` wskazuje, że korzystamy z biblioteki `System`, która zawiera klasę `Console` i jej metodę `WriteLine`.
|
||||||
|
|
||||||
Różnicą między językami kompilowanymi, a interpretowanymi są też inne aspekty, takie jak informowanie o błędach, w językach kompilowanych błędy są wykrywane podczas kompilacji co oznacza, że program nie uruchomi się dopóki wszystkie błędy nie zostaną naprawione. W językach interpretowanych błędy są wykrywane podczas uruchamiania programu, co oznacza, że program może się uruchomić, ale może napotkać błąd w trakcie działania i wtedy się zatrzymać. Czy to oznacza, że w programach w językach kompilowanych jeśli podczas etapu kompilacji nie wystąpią błędy to program będzie działał bezbłędnie? Niestety nie, ponieważ mogą wystąpić błędy logiczne, bądź błędy wykonania, które nie są wykrywane podczas kompilacji.
|
Różnicą między językami kompilowanymi, a interpretowanymi są też inne aspekty, takie jak informowanie o błędach, w językach kompilowanych błędy są wykrywane podczas kompilacji co oznacza, że program nie uruchomi się dopóki wszystkie błędy nie zostaną naprawione. W językach interpretowanych błędy są wykrywane podczas uruchamiania programu, co oznacza, że program może się uruchomić, ale może napotkać błąd w trakcie działania i wtedy się zatrzymać. Czy to oznacza, że w programach w językach kompilowanych jeśli podczas etapu kompilacji nie wystąpią błędy to program będzie działał bezbłędnie? Niestety nie, ponieważ mogą wystąpić błędy logiczne, bądź błędy wykonania, które nie są wykrywane podczas kompilacji.
|
||||||
Natomiast kompilator stoi na straży poprawności składniowej kodu, co jest bardzo przydatne, bo pozwala programiście na uniknięciu wielu błędów już na etapie pisania kodu.
|
Natomiast kompilator stoi na straży poprawności składniowej kodu, co jest bardzo przydatne, bo pozwala programiście na uniknięciu wielu błędów już na etapie pisania kodu.
|
||||||
== Zmienne
|
|
||||||
No dobrze, nasz pierwszy program był bardzo prosty i przez to można by powiedzieć, że nie był zbyt ciekawy, bo przecież programy, do których jesteśmy przyzwyczajeni robią coś więcej niż tylko wyświetlanie tekstu na ekranie.
|
|
||||||
|
|
||||||
Jedną z podstawowych rzeczy, które pozwalają programom robić coś więcej, są zmienne. Zmienne to takie "pudełka", w których możemy przechowywać różne wartości, takie jak liczby, tekst, czy inne dane. Jak sama nazwa wskazuje, wartość przechowywana w zmiennej może się zmieniać w trakcie działania programu.
|
|
||||||
Jest to niesamowicie użyteczna właściwość, ponieważ pozwala programom na dynamiczne reagowanie na różne sytuacje i dane wejściowe.
|
|
||||||
#pagebreak()
|
|
||||||
=== Przykład
|
|
||||||
Zastosowanie zmiennych w praktyce najlepiej zobrazować na przykładzie. Poniżej znajduje się prosty program, który pyta użytkownika o jego wiek, a następnie wyświetla go na ekranie.
|
|
||||||
#codly(languages: codly-languages, zebra-fill: none, display-icon: false, display-name: false)
|
|
||||||
```cs
|
|
||||||
using System;
|
|
||||||
int age;
|
|
||||||
Console.WriteLine("Enter your age:");
|
|
||||||
age = Convert.ToInt32(Console.ReadLine());
|
|
||||||
Console.WriteLine("You are " + age + " years old.");
|
|
||||||
int nextYearAge = age + 1;
|
|
||||||
Console.WriteLine("Next year, you will be " + nextYearAge + " years old.");
|
|
||||||
```
|
|
||||||
=== Wyjaśnienie
|
|
||||||
Przyjrzyjmy się, jak działa ten program krok po kroku.
|
|
||||||
1. `int age;` - Ta linia deklaruje zmienną o nazwie `age`, która jest typu `int` (liczba całkowita). Deklaracja zmiennej mówi kompilatorowi, że chcemy zarezerwować miejsce w pamięci na przechowywanie wartości tego typu.
|
|
||||||
2. `Console.WriteLine("Enter your age:");` - Ta linia wyświetla na ekranie prośbę o podanie wieku.
|
|
||||||
3. `age = Convert.ToInt32(Console.ReadLine());` - Ta linia odczytuje dane wejściowe od użytkownika za pomocą `Console.ReadLine()`, konwertuje je na liczbę całkowitą za pomocą `Convert.ToInt32()` i przypisuje tę wartość do zmiennej `age`.
|
|
||||||
4. `Console.WriteLine("You are " + age + " years old.");` - Ta linia wyświetla na ekranie wiek użytkownika, korzystając z wartości przechowywanej w zmiennej `age`.
|
|
||||||
5. `int nextYearAge = age + 1;` - Ta linia deklaruje nową zmienną `nextYearAge`, która przechowuje wartość wieku użytkownika powiększoną o 1, co reprezentuje jego wiek w następnym roku.
|
|
||||||
6. `Console.WriteLine("Next year, you will be " + nextYearAge + " years old.");` - Ta linia wyświetla na ekranie wiek użytkownika w następnym roku, korzystając z wartości przechowywanej w zmiennej `nextYearAge`.
|
|
||||||
|
|
||||||
W następnym rozdziale omówimy różne typy danych, które można przechowywać w zmiennych, oraz jak wybierać odpowiedni typ dla różnych zastosowań. Może Ciebie zaintrygować wykorzystanie metody `Convert.ToInt32()`, po co ona jest i dlaczego nie można po prostu przypisać wyniku `Console.ReadLine()` do zmiennej `age`? Odpowiedź na to pytanie również znajdziesz w następnym rozdziale. Na razie skupmy się na tym, że zmienne pozwalają nam przechowywać i manipulować danymi w naszych programach, co jest kluczowe dla tworzenia bardziej zaawansowanych aplikacji.
|
|
||||||
=== Ćwiczenia
|
|
||||||
1. Napisz program, który pyta użytkownika o jego imię i wyświetla powitanie z użyciem tego imienia.
|
|
||||||
2. Napisz program, który pyta użytkownika o dwie liczby całkowite i wyświetla ich sumę.
|
|
||||||
3. Napisz program, który pyta użytkownika o promień koła i oblicza oraz wyświetla jego pole powierzchni (użyj wzoru: pole = $pi * r^2, "gdzie" pi approx 3.14$).
|
|
||||||
#super[Wskazówka: Wiedza z następnego rozdziału może być przydatna do rozwiązania tych zadań.]
|
|
||||||
== Typy danych
|
== Typy danych
|
||||||
W poprzednim rozdziale wprowadziliśmy koncept "pudełek" na dane, czyli zmiennych. W prawdziwym świecie, mamy różne rodzaje pudełek na różne przedmioty, nie wsadzimy przecież telewizora do pudełka po butach, bo się po prostu nie zmieści. Podobnie jest w naszych cyfrowych "pudełkach". Różne rodzaje danych wymagają różnych typów. To właśnie typ określa, jaką wartość można przechować w zmiennej. Decyduje on również o tym, ile miejsca ta wartość zajmie w pamięci komputera. Wybór odpowiedniego typu danych jest kluczowy, ponieważ wpływa na wydajność programu oraz na to, jakie operacje można wykonywać na tych danych. O tym ile miejsca w pamięci zajmuje dany typ danych, decyduje architektura systemu operacyjnego na którym działa program (np. 32-bitowy lub 64-bitowy) oraz implementacja języka programowania.
|
W następnym rozdziale wprowadzę koncept "pudełek" na dane, czyli zmiennych. W prawdziwym świecie, mamy różne rodzaje pudełek na różne przedmioty, nie wsadzimy przecież telewizora do pudełka po butach, bo się po prostu nie zmieści. Podobnie jest w naszych cyfrowych "pudełkach". Różne rodzaje danych wymagają różnych typów. To właśnie typ określa, jaką wartość można przechować w zmiennej. Decyduje on również o tym, ile miejsca ta wartość zajmie w pamięci komputera. Wybór odpowiedniego typu danych jest kluczowy, ponieważ wpływa na wydajność programu oraz na to, jakie operacje można wykonywać na tych danych. O tym ile miejsca w pamięci zajmuje dany typ danych, decyduje architektura systemu operacyjnego na którym działa program (np. 32-bitowy lub 64-bitowy) oraz implementacja języka programowania.
|
||||||
|
|
||||||
Poniżej omówię kilka podstawowych typów danych, które są powszechnie używane w programowaniu wraz z ich rozmiarem w pamięci na typowej 64-bitowej architekturze i przykłady ich zastosowania.
|
Poniżej omówię kilka podstawowych typów danych, które są powszechnie używane w programowaniu wraz z ich rozmiarem w pamięci na typowej 64-bitowej architekturze i przykłady ich zastosowania.
|
||||||
|
|
||||||
@@ -139,12 +110,105 @@ Typ `float` jest typem zmiennoprzecinkowym pojedynczej precyzji, co oznacza, że
|
|||||||
|
|
||||||
Możesz się zastanawiać, dlaczego typ `bool` zajmuje 8 bitów, skoro może przyjmować tylko dwie wartości: `true` lub `false`. Powodem jest to, że w większości architektur komputerowych, najmniejszą jednostką pamięci, którą można zaadresować, jest bajt (8 bitów). Dlatego nawet jeśli zmienna typu `bool` potrzebuje tylko jednego bitu do przechowywania swojej wartości, to i tak zajmuje cały bajt w pamięci. Aczkolwiek istnieją sposoby, by zaoszczędzić miejsce, na przykład poprzez pakowanie wielu wartości `bool` w jeden bajt, ale to już bardziej zaawansowany temat.
|
Możesz się zastanawiać, dlaczego typ `bool` zajmuje 8 bitów, skoro może przyjmować tylko dwie wartości: `true` lub `false`. Powodem jest to, że w większości architektur komputerowych, najmniejszą jednostką pamięci, którą można zaadresować, jest bajt (8 bitów). Dlatego nawet jeśli zmienna typu `bool` potrzebuje tylko jednego bitu do przechowywania swojej wartości, to i tak zajmuje cały bajt w pamięci. Aczkolwiek istnieją sposoby, by zaoszczędzić miejsce, na przykład poprzez pakowanie wielu wartości `bool` w jeden bajt, ale to już bardziej zaawansowany temat.
|
||||||
|
|
||||||
W poprzednim rozdziale użyliśmy metody `Convert.ToInt32()`, aby przekonwertować dane wejściowe od użytkownika (które są w formie tekstowej) na liczbę całkowitą. Dzieje się tak dlatego, że metoda `Console.ReadLine()` zwraca wartość typu `string`, a my chcemy przechować tę wartość w zmiennej typu `int`. Próba bezpośredniego przypisania wartości zwróconej przez `Console.ReadLine()` do zmiennej `age` spowodowałaby błąd kompilacji, ponieważ typy danych muszą być zgodne. Programista, więc ma narzędzia do konwersji między różnymi typami danych, takie jak `Convert.ToInt32()`, które umożliwiają przekształcenie wartości z jednego typu na inny, o ile jest to logicznie możliwe, ale o konwersji między typami danych opowiem więcej w dalszej części książki.
|
== Zmienne
|
||||||
|
No dobrze, nasz pierwszy program był bardzo prosty i przez to można by powiedzieć, że nie był zbyt ciekawy, bo przecież programy, do których jesteśmy przyzwyczajeni robią coś więcej niż tylko wyświetlanie tekstu na ekranie.
|
||||||
|
|
||||||
|
Jedną z podstawowych rzeczy, które pozwalają programom robić coś więcej, są zmienne. Zmienne to są wspomniane przeze mnie juz takie "pudełka", w których możemy przechowywać różne wartości, takie jak liczby, tekst, czy inne dane. Jak sama nazwa wskazuje, wartość przechowywana w zmiennej może się zmieniać w trakcie działania programu.
|
||||||
|
Jest to niesamowicie użyteczna właściwość, ponieważ pozwala programom na dynamiczne reagowanie na różne sytuacje i dane wejściowe.
|
||||||
|
=== Przykład
|
||||||
|
Zastosowanie zmiennych w praktyce najlepiej zobrazować na przykładzie. Poniżej znajduje się prosty program, który pyta użytkownika o jego wiek, a następnie wyświetla go na ekranie.
|
||||||
|
#codly(languages: codly-languages, zebra-fill: none, display-icon: false, display-name: false)
|
||||||
|
```cs
|
||||||
|
using System;
|
||||||
|
int age;
|
||||||
|
Console.WriteLine("Enter your age:");
|
||||||
|
age = Convert.ToInt32(Console.ReadLine());
|
||||||
|
Console.WriteLine("You are " + age + " years old.");
|
||||||
|
int nextYearAge = age + 1;
|
||||||
|
Console.WriteLine("Next year, you will be " + nextYearAge + " years old.");
|
||||||
|
```
|
||||||
|
=== Wyjaśnienie
|
||||||
|
Przyjrzyjmy się, jak działa ten program krok po kroku.
|
||||||
|
1. `int age;` - Ta linia deklaruje zmienną o nazwie `age`, która jest typu `int` (liczba całkowita). Deklaracja zmiennej mówi kompilatorowi, że chcemy zarezerwować miejsce w pamięci na przechowywanie wartości tego typu.
|
||||||
|
2. `Console.WriteLine("Enter your age:");` - Ta linia wyświetla na ekranie prośbę o podanie wieku.
|
||||||
|
3. `age = Convert.ToInt32(Console.ReadLine());` - W tej linijce dzieje się sporo, ale spokojnie, zacznijmy od środka. `Console.ReadLine()` czeka az uzytkownik wpisze cokolwiek i nacisnie klawisz `Enter`. *Wazne*: cokolwiek zostanie wpisane, nasz program potraktuje to jako `string` (tekst). Nastepnie ten tekst wpisany przez uzytkownika trafia do metody `Convert.ToInt32()`, ta funkcja probuje "przerobic" nasz tekst na liczbe calkowita (int).
|
||||||
|
4. `Console.WriteLine("You are " + age + " years old.");` - Ta linia wyświetla na ekranie wiek użytkownika, korzystając z wartości przechowywanej w zmiennej `age`.
|
||||||
|
5. `int nextYearAge = age + 1;` - Ta linia deklaruje nową zmienną `nextYearAge`, która przechowuje wartość wieku użytkownika powiększoną o 1, co reprezentuje jego wiek w następnym roku.
|
||||||
|
6. `Console.WriteLine("Next year, you will be " + nextYearAge + " years old.");` - Ta linia wyświetla na ekranie wiek użytkownika w następnym roku, korzystając z wartości przechowywanej w zmiennej `nextYearAge`.
|
||||||
|
|
||||||
|
=== Ćwiczenia
|
||||||
|
1. Napisz program, który pyta użytkownika o jego imię i wyświetla powitanie z użyciem tego imienia.
|
||||||
|
2. Napisz program, który pyta użytkownika o dwie liczby całkowite i wyświetla ich sumę.
|
||||||
|
3. Napisz program, który pyta użytkownika o promień koła i oblicza oraz wyświetla jego pole powierzchni (użyj wzoru: pole = $pi * r^2, "gdzie" pi approx 3.14$).
|
||||||
|
|
||||||
== Instrukcje sterujące programem
|
== Instrukcje sterujące programem
|
||||||
|
W tym rozdziale omówię w jaki sposób jesteśmy w stanie sterować przepływem wykonania naszego programu. W programowaniu mamy dostępne kilka rodzai instrukcji sterujących. Są to instrukcje warunkowe, czyli wykonaj kod jeśli dany warunek jest spełniony. Instrukcje powtarzające się (pętle), czyli wykonaj dany fragment X razy. Instrukcje skoku, czyli bezpośrednio przejdź do danego miejsca. Z tych ostatnich generalnie nie powinno się korzystać, bo wprowadzają chaos i trudność analizy kodu później. No i na samym końcu mamy hybrydowe zestawienie, które łaczy skok z warunkami (switch, match).
|
||||||
=== Instrukcje warunkowe
|
=== Instrukcje warunkowe
|
||||||
|
Jak wspomniałem instrukcje warunkowe pozwalają wykonać kod, gdy pewny warunek jest spełniony. Jest to bardzo uzyteczne narzędzie, bez którego programy nie byłyby za ciekawe.
|
||||||
==== Przykład
|
==== Przykład
|
||||||
|
```cs
|
||||||
|
int age = 20;
|
||||||
|
|
||||||
|
if (age >= 18)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Gratuluję, jesteś pełnoletni!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("Niestety, jesteś niepełnoletni.");
|
||||||
|
}
|
||||||
|
|
||||||
|
age = 25;
|
||||||
|
|
||||||
|
if (age >= 35)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Mozesz byc prezydentem.");
|
||||||
|
}
|
||||||
|
else if (age >= 21)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Mozesz byc posłem.");
|
||||||
|
}
|
||||||
|
else if (age >= 18)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Możesz głosować.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("Nie możesz byc prezydentem, posłem ani głosować.");
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
==== Rezultat
|
||||||
|
Wynik działania powyższego kodu to:
|
||||||
|
```
|
||||||
|
Gratuluję, jesteś pełnoletni!
|
||||||
|
Mozesz byc posłem.
|
||||||
|
```
|
||||||
==== Wyjaśnienie
|
==== Wyjaśnienie
|
||||||
|
Jak widać na przykładzie instrukcja warunkowa składa się z konstrukcji
|
||||||
|
```cs
|
||||||
|
if (warunek)
|
||||||
|
{
|
||||||
|
// kod
|
||||||
|
}
|
||||||
|
```
|
||||||
|
co oznacza, jeśli (if) warunek będzie prawdziwy to wykonaj kod, który jest między klamrami.
|
||||||
|
|
||||||
|
Natomiast, co jeśli mamy taka sytuację chcemy, by pewien kod wykonał się jeśli warunek jest spełniony, a jeśli nie (else) to inny fragment powinien się wykonać. Do tego właśnie słuzy konstrukcja
|
||||||
|
```cs
|
||||||
|
if (warunek)
|
||||||
|
{
|
||||||
|
// waurnek spelniony, wykonaj ten fragment
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// w przeciwnym razie wykonaj to
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
W przykładzie przedstawiłem jeszcze jedna konstrukcje `if else`, która oznacza, jeśli warunek 1 nie został spełniony to sprawdź i wykonaj warunek 2. Mozemy jeszcze tak jak w przykłdzie dodać `else` na końcu przez co dostaniemy taka konstrukcję: sprawdź warunek 1, jeśli nie jest spełniony sprawdź warunek 2, jeśli warunek 1 i warunek 2 są niespełnione to wykonaj kod od `else`.
|
||||||
|
|
||||||
|
Wazne, mozemy mieć wiele `if else` i są one sprawdzane od góry do dołu.
|
||||||
==== Ćwiczenia
|
==== Ćwiczenia
|
||||||
=== Pętle
|
=== Pętle
|
||||||
==== Przykład
|
==== Przykład
|
||||||
|
Reference in New Issue
Block a user