[ Slack23 @ 08.11.2009. 13:09 ] @
| Elem imam pitanje, radim neku petlju ali ne razumijem princip kako se cita ova petlja..
int i =1;
while (i<=32){
if(i<8){
System.out.print(i+ " ");
}else{
System.out.println();
}
i=i*2;
}
System.out.print("Result = " + i);
}
rjesenje je;
1 2 4
Result = 64
sad me zanima zasto je broj 3 preskocio nego redosled ide 1 2 4 i ako recimo stavim broj 5 umjesto osam isto ce mi izbaciti. Ne znam jel prvo br 1 ubacujem u while petlju pa onda u if ili obrnuto i kad mnozim sa brojem 2?
Moze li neko da mi napise proceduru ako nije problem sta s cim racunam i sta mi je priortet ovde.
Hvala unaprijed |
[ Borg Collective @ 08.11.2009. 14:59 ] @
Vidimo da je na pocetku i = 1
Petlja pocinje da se izvrsava:
# Prvi prolaz: i = 1;
Provjera da li je (i < 8), jeste i = 1 sto je manje od 8, printa i tj. 1
dalje, i = i * 2 => i = 1 * 2 = 2; na kraju prvog prolaza i = 2
# Drugi prolaz: i = 2;
Provjera da li je (i < 8), jeste i = 2 sto je manje od 8, printa i tj. 2
dalje, i = i * 2 => i = 2 * 2 = 4; na kraju drugog prolaza i = 4;
# Treci prolaz: i = 4;
Provjera da li je (i < 8), jeste i = 4 sto je manje od 8, printa i tj. 4
dalje, i = i * 2 => i = 4 * 2 = 8; na kraju drugog prolaza i = 8;
# Cetvrti prolaz: i = 8;
Provjera da li je (i < 8), nije i = 8 sto nije manje od 8, ne printa ...
dalje, i = i * 2 => i = 8 * 2 = 16; na kraju drugog prolaza i = 16;
i tako dalje ...
sve dok je i manje ili jednako 32
na kraju printa 64 kao vrijednost i jer u posljednjem prolazu imamo 32 * 2 = 64.
[ Slack23 @ 08.11.2009. 15:53 ] @
E super hvala ti puno Djole na brzom i iscrpnom odgovoru

.
Svaka cast mnogo si mi pomogao
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.