On siis tällainen ohjelma:
int luku=20, tekija=1;
while(tekija<=(luku/2))
{
if (luku%tekija==0)
System.out.println(tekija);
tekija=tekija 1;
}
Tulosteena tulee:
1
2
4
5
10
Kysymys: Miksi siihen tulee luvut 4, 5 ja 10 mukaan? Minun ymmärtääkseni while silmukan ehto (tekija<=(luku/2)) lakkaa jo aikaisemmin olemasta.
??
While-silmukka ja oudot tulosteet?
jonne_boy
3
2791
Vastaukset 3
- Pizzanpaistaja
Et vaan osaa. Vaihda alaa.
- ei_nimimerkkia
Ei oo virhettä. Ajattele pöytätestinä näin:
while(tekija<=(luku/2))
Sijoita luvut:
while(1<=(10))
Tuo 10 ei siis kasvaa missään kohtaa. Tekija sen sijaan kasvaa aina yhdellä. - Ööökui
Onhan kymppikin vielä <= 10.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 128797
- 81706
- 56688
- 46593
Mitä luulet
Mitä luulet kaivattusi ajattelevan sonusta? Onko jotain mitä haluaisit oikaista hänelle?40577- 60552
Vielä hyvinvointitalosta
Suurin osa pyhäjärvisistä on sivistynyttä fiksua porukkaa ja on täysin hankkeen kannalla. Nyt vain pieni äänekäs joukko71526Luule ja ajattele minusta
mitä tykkäät nainen, olet ajat sitten antanut itsestäsi ihan omanlaisen kuvan.. 😅44517- 26491
- 53473