[quote="zrinka"]Zašto u slijedećem programu nema else prije "return 1;"?[/quote]
Zato sto taj red uopce nije unutar petlje - nema viticastih zagrada koje oznacavaju blok - dakle, [b]samo[/b] ovaj red je unutra:
[code:1]if (n%i==0) return 0;[/code:1]
Cim se nade broj s kojim je onaj prvi djeljiv, taj prvi je slozen, odnosno nije prost (vraca 0) i funkcija je izvrsena.
[code:1]return 1;[/code:1]
Ovo ce se dogoditi samo ako se kod nakon petlje treba izvrsiti, tj. iz petlje se izleti [i]normalno[/i], a ne s return cime se izlazi i iz funkcije.
Dakle, petlja zavrsi [i]normalno[/i] (zbog uvjeta petlje koji postane lazan) ako broj nije djeljiv ni s jednim do svog korijena (plus jedan, stogod), tj. ako nije slozen, tj. ako je prost.
Glavna stvar koju treba shvatiti jest da cim naides na broj kojim je prvi djeljiv, radi se o slozenom i izvrsavanje zavrsava (dovoljan je [b]samo jedan[/b]). No, ako [b]za svaki[/b] broj [i]i[/i] vrijedi da ne dijeli onaj prvi, taj prvi je prost (vraca 1).
zrinka (napisa): | Zašto u slijedećem programu nema else prije "return 1;"? |
Zato sto taj red uopce nije unutar petlje - nema viticastih zagrada koje oznacavaju blok - dakle, samo ovaj red je unutra:
Kod: | if (n%i==0) return 0; |
Cim se nade broj s kojim je onaj prvi djeljiv, taj prvi je slozen, odnosno nije prost (vraca 0) i funkcija je izvrsena.
Ovo ce se dogoditi samo ako se kod nakon petlje treba izvrsiti, tj. iz petlje se izleti normalno, a ne s return cime se izlazi i iz funkcije.
Dakle, petlja zavrsi normalno (zbog uvjeta petlje koji postane lazan) ako broj nije djeljiv ni s jednim do svog korijena (plus jedan, stogod), tj. ako nije slozen, tj. ako je prost.
Glavna stvar koju treba shvatiti jest da cim naides na broj kojim je prvi djeljiv, radi se o slozenom i izvrsavanje zavrsava (dovoljan je samo jedan). No, ako za svaki broj i vrijedi da ne dijeli onaj prvi, taj prvi je prost (vraca 1).
_________________ We only have one candle
To burn down to the handle...
- Sonata Arctica, Weballergy
|