Witam,
Dopiero zaczynam naukę programowania Javy. W podręczniku znalazłem przykład programu do oblicznia liczb pierwszych.
Nie do końca rozumiem dlaczego działa prawidłwo :).
Pytanie czy jeśli zagnieżdżona pętla 'for' skończyła spełniać warunki i program wraca do pierwszej pętli 'for', to czy wartość d w drugiej, zagnieżdżonej pętli pozostaje zapamiętana czy jest resetowana?
Według mojego rozumowania program nie powinine działać, gdyż dla i = 9, spełnione jest warunek pierwszej pętli, przypisana zostaje wartość isprime=true, spełniony jest warunek 2 pętli (2 <= 9/2) oraz nie jest spełniony warunek 'if' zatem isprime=true. W takim wypadku liczba 9 powinna zostać wyświetlona w ciągu, ale tak się nie dzieje.
Dlaczego?
class PrimeNum {
public static void main(String args[]) {
int i;
int d;
boolean isprime;
System.out.println("Liczby pierwsze: ");
for(i = 2; i < 100; i++) {
isprime = true;
for(d = 2; d <= i/d; d++)
if((i % d) == 0) isprime = false;
if(isprime)
System.out.println(i);
}
}
}
Pozdrawiam