Dostałem zadanie by napisać program pozwalający na sprawdzenie, które liczby całkowite z przedziału <1,100> są podzielne przez 9 i wypisać je na ekranie. Przy użyciu pętli for rozwiązanie przychodzi mi bardzo łatwo, ale jakoś nie mogę połapać się jak to rozwiązać przy użyciu pętli while i do while. Proszę o pomoc.
0
2
pseudokod:
n = 1
dopóki n <= 100
jeśli reszta z dzielenia n przez 9 równa się 0, to wypisz n
n = n + 1
2
Może ten przykład też pomoże Ci zrozumieć różnicę między tymi dwiema pętlami.
https://en.wikipedia.org/wiki/Do_while_loop#Equivalent_constructs
do {
do_work();
} while (condition);
is equivalent to
do_work();
while (condition) {
do_work();
}
A poniżej w artykule masz jeszcze przykład w Javie.
0
LukeJL napisał(a):
pseudokod:
n = 1 dopóki n <= 100 jeśli reszta z dzielenia n przez 9 równa się 0, to wypisz n n = n + 1
Dziękuję bardzo. Nie wychodziło mi bo wrzucałem inkrementację pod IFa, zamiast po nim.
0
Różnica pomiędzy tymi pętlami dotyczy właściwie wyłącznie składni:
for(int i = 1; i<=100; i++){
if(i%9 == 0){
...
}
}
int i = 1;
while(i<=100){
if(i%9 == 0){
...
}
i++;
}
int i = 1;
do {
....
i++
} while(i <=100)
Na przekładając na psekudokod, masz tak:
while:
hip
jeżeli warunek niespełniony skocz do hop
zrób coś
skocz do hop
hop
do while:
hop
zrób coś
jeżeli warunek spełniony, to skocz do hop
a pętla for, to nic więcej jak inaczej zapisana pętla while, gdzie masz
for([coś na samym początku, wykona się raz]; [warunek przeskoczenia na początek pętli]; [coś co wykona się po każdej iteracji]){
[coś co ma być wykonane podczas każdej interacji]
}