Prikaz jedne poruke
Stara 30.5.2013, 11:09   #626
irreal
V.I.P. Programiranje
 
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
Određen forumom Re: How to... Visual Basic

prvo mala prepravka, cisto da bi bio pregledniji kod

umesto

Kod:
intRezultat *= (intBrojevi - 1)
intBrojevi -= 1
mozes da stavis

Kod:
intBrojevi -= 1
intRezultat *= (intBrojevi)
no, naravno, tvoj problem ne lezi tu, tvoj problem lezi u while uslovu


stoji ti while intBrojevi = 1

taj uslov nije tacan od samog starta (osim ako ne uneses 1 kao pocetni broj)

jedini razlog zasto se uopste bilo sta izvrsava je sto je uslov na dnu petlje, pa prvi put mora da prodje.

to treba da prepravis sa while intBrojevi = 1 na while intBrojevi > 1

dakle, dokle god je intBrojevi josuvek VECI od 1, pokreni petlju ponovo, pomnozi, smanji intBrojevi, opet testiraj.


zapamti da u while uslovu ne pises uslov kada hoces da se zavrsi petlja nego pises uslov koji mora da vazi da bi petlja nastavila da se izvrsava.

naravno, logickim operacijama uvek imas fleksibilnost (kao sto je dodavanje NOT, sto bi takodje popravilo tvoj kod, while not intBrojevi = 1)

a mozda VB jos uvek podrzava i "UNTIL" umesto "WHILE", sto bi takodje resilo tvoj problem.

No, resenje koje sam ti prvo naveo je po meni najcistije i najjasnije, ja bi izabrao to
irreal je offline   Odgovor sa citatom ove poruke