Witajcie!
Po czekaniu aż steemit ogarnie się z przepustowością (Bandwith), ze względu na wzmożony piątkowy wieczór, udało mi się wrzucić następny post związany z nauką podstaw Javy dla zupełnie początkujących.
Poprzedni post z serii znajduje się tutaj: https://steemit.com/polish/@grzegorz2047/pl-wstep-do-programowania-w-javie-dla-kompletnych-laikow-5-pierwsze-swiadome-stworzenie-i-uzycie-klasy
Dzisiaj zajmiemy się z problemem powtarzania się pewnych instrukcji w naszym programie. Ale zaraz, o jakim powtarzaniu mówisz?
Podam ci przykład "powtarzalnego" kodu:
public static void main(String[] args) {
System.out
.println("Wyświetlam numer 1");
System.out
.println("Wyświetlam numer 2");
System.out
.println("Wyświetlam numer 3");
System.out
.println("Wyświetlam numer 4");
System.out
.println("Wyświetlam numer 5");
}
(PAMIĘTAJCIE, że kod powyżej to główna metoda naszego programu i musi ta metoda być zawarta w klasie, bo inaczej nie uruchomicie programu. Tak tylko piszę, bo "źle" skopiujecie i będzie pisać czemu nie działa xd)
Jak widzisz, próbuję wyświetlić 5 razy wiadomość "Wyświetlam numer " i numerek.
No spoko, to co mogę zrobić, żeby nie musieć powtarzać tak dużo tego kodu?
Użyjemy pętli for
. Pętla for
służy do przechodzenia przez jakąś instrukcję przez określoną ilość razy. Taka pętla wie od jakiego momentu ma rozpocząć działanie i wie ile już obecnie zrobił pętli z danymi instrukcjami. Żeby ciebie trochę oświecić podam ci przykład użycia takiej pętli i omówimy co tam się dzieje:
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out
.println("Wyświetlam numer " + i);
}
}
}
To teraz wyjaśnijmy sobie linijkę for (int i = 1; i <= 5; i++) {
.
Na początku tworzenia pętli mamy słowo kluczowe for
, następnie w nawiasie () mamy int i = 1;
. To oznacza, że tworzymy zmienną o nazwie i i wrzucamy do niej startową liczbę 1. Następnie mamy pewne wyrażenie i <= 5;
. To wyrażenie, że zawartość zmiennej i mniejsza lub równa 5. Ten warunek jest warunkiem decydującym kiedy pętla ma zakończyć swoje zadanie, czyli w tym przypadku ma tak długo działać aż wartość zmiennej i nie osiągnie liczby 5 i kiedy i osiągnie liczbę 6, to ma zakończyć działanie. A i++
mówi tylko, że po wykonaniu operacji ma podnieść wartość zmiennej o 1 do góry, czyli jak zmienna i była równa 1, to po wykonaniu instrukcji zmienna i uzyska wartość 2.
Następna linijka System.
out
.println("Wyświetlam numer " + i);
to po prostu wyświetlenie napisu "Wyświetlam numer" i doklejenie do napisu zawartości zmiennej i.
Więcej informacji uzyskasz tutaj: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
Jakie zatem jeszcze mamy możliwości wykonania tej samej czynności wyświetlenia 5 razy "Wyświetlam numer <jakiśNumer>"?
Możemy użyć pętli while
Jak to zatem wygląda w kodzie?
O tak:
public static void main(String[] args) {
String napis = "Wyświetlam numer ";
int i = 1;
while (i <= 5) {
System.out
.println(napis + i);
i++;
}
}
Zacznijmy od tego, że pętlę while możemy możemy przetłumaczyć jako "podczas", czyli podczas gdy i jest mniejsze lub równe wykonaj instrukcje zawarte wewnątrz { }. Poprzednie zdanie tyczy się tej linii: while (i <= 5) {
.
Generalnie w metodzie mamy stworzenie zmiennej przechowującą napis "Wyświetlam numer ". Mamy także stworzoną zmienną, która przechowuje liczbę całkowitą. Jej startowa wartość to 1. W naszej pętli mamy wyświetlanie na ekranie połączonych zmiennych napis oraz i. ostatnia linijka w naszej pętli zwiększa liczbę zapisaną w zmiennej i o jeden do góry. Gdyby nie było linijki i++;
, nasz program nigdy by nie wyszedł z pętli i wykonywał się aż nie zostałby zatrzymany przez nas. Spróbujcie usunąć i++;
i zobaczcie jak zachowa się wasz program.
Następną pętlą, która jest rzadziej wykorzystywana to pętla do while
. Jej różnica pomiędzy pętlą while
jest taka, że pętla do while
najpierw wykonuje raz instrukcje zawarte wewnątrz, a dopiero sprawdza czy ma kontynuować działanie czy ma zakończyć działanie. Jej tłumaczenie może być "rób dopóki". Czyli inaczej mówiąc, zacznij coś robić i sprawdzaj czy nadal masz to robić, czy już masz przestać.
Przykładowy kod z użyciem tej pętli wygląda tak:
public static void main(String[] args) {
String napis = "Wyświetlam numer ";
int i = 1;
do {
System.out
.println(napis + i);
i++;
} while (i <= 5);
}
Tłumacząc powyższy kod w skrócie. Tworzymy zmienną przechowującą napis. Tworzymy zmienną przechowującą liczbę. Następnie wchodzimy do pętli. Wykonujemy pierwsze wyświetlenie połączonych wartości ze zmiennej napis i zmiennej o nazwie i. A potem połączony napis wyświetlamy na ekranie. Po wyświetleniu na ekranie zwiększamy wartość zmiennej i o jeden i na końcu sprawdzamy czy nasza pętla ma dalej się wykonywać. Jeżeli i jest wciąż mniejsze bądź równe 5, to ma wykonać jeszcze raz instrukcje wewnątrz pętli.
Więcej informacji na temat pętli while
i do while uzyskasz tutaj: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
Myślę, że to powinno wystarczyć na razie, żeby móc samemu użyć takiej pętli. Jako zadanie dla was dam to, żeby wasz program 10 razy dodał do zmiennej suma wartość zmiennej i w pętli. Swoją metodą możecie pochwalić się w komentarzach. Poprawne rozwiązania będę starał się plusować :)