Wątek przeniesiony 2014-11-03 06:41 z Java przez bogdans.

Zmienna nie zmienia wartosci w petli

0

Witam, mam pewien dziwny problem. Otoz nastepujacy program nie dziala, glowie sie i glowie ale nie moge rozkminic o co w tym chodzi:

public class cw4 {
public static void main(String[] args) {
	float z=1.5;
	int i=2,n=2;
	do
	{
		i++;
		z=z+(1/n);
		n*=2;
	} while (i<10);
	System.out.println(z);
}
}

zmienna z nie zmienia swojej wartosci. Pomozcie prosze, wiem, ze lepiej by bylo na for ale zmienilem petle bo myslalem, ze to rozwiaze problem. Mylilem sie

uzupełnienie tagów wątku - @furious programming

1

1/n daje Ci zawsze wartość 0 bo n jest typu int.

0

zeby nie zasmiecac forum dorzuce tutaj jeszcze jedno pytanie, sry za blahostki ale na prawde dawno nie pisalem nic w zadnym jezyku czas sie wziac w garsc bo wykladam sie na najprostrzych zadaniach :( oto kod:

 
public class cw4 {
public static void main(String[] args) {
int[] tab={4,2,6,8,3,4,1,8,3,3};
int gdzie, min=tab[0];
for(int i=0;i<10;i++)
{
	System.out.println(i +" - "+ tab[i]);
	if(tab[i]<=min)
	{
		min=tab[i];
		gdzie=i;
	}
}
System.out.println("Najmniejsza : "+gdzie);
System.out.println("Najmniejsza : "+min);
}
}

wywala mi blad przy wyswietleniu zmiennej gdzie(zmienna nie zadeklarowana), co najlepsze jak wrzuce ta linie w petle wszystko jest ok...

1

Nie wyrzuca błąd, że zmienna nie zadeklarowana tylko, że może być niezainicjalizowana i ma rację. Ponieważ nie przypisałeś jej na początku żadnej wartości i jeśli if nie będzie ani raz spełniony to na końcu nic do niej nie będzie przypisane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1