Program, tablica dwuwymiarowa,pętla for !

0

Mam problem z pętlą for, gdy wprowadzę z klawiatury liczbę kolum i wierszy wyświetla mi 0. Prosiłbym umieszczać w pliku txt rozwiązania, dziękuję.

Oto mój kod programu:

import java.io.*;
public class programss {
static BufferedReader buf = new BufferedReader (new InputStreamReader(System.in));
static String wie, kol;

static int k, w, j, i;
static int tablica [][]=new int[w][k];
public static void main (String args[]){


System.out.println("Podaj liczbe kolumn.");
try{



kol=buf.readLine();
}
catch(IOException e){
}


try{
k=Integer.parseInt(kol);


}
catch(NumberFormatException e){
}


System.out.println("Podaj liczbę wierszy.");

try
{

wie=buf.readLine();
}

catch(IOException e)
{
System.out.println("Przechwycono błąd wejsciowy" +e);
}


try{

w=Integer.parseInt(wie);

}

catch(NumberFormatException e)
{
System.out.println("Przechwycono błąd wejsciowy" +e);
}


 tablica = new int[i][j];
	int p=w*k;
	for(int i=0;i<w;i++){

		for(int j=0;j<k;j++){
			tablica[i][j]=p--;



		}
	}


try{   //nie wiem co z tym try`em dałem go tutaj i dziala, ale coś źle liczy
}

	catch(ArrayIndexOutOfBoundsException e){
		System.out.println("Przechwycono błąd wejsciowy" +e);
	}

for(i=0;i<w;i++){
		System.out.print("tablica["+i+"]=");
		for(j=0;j<k;j++){
			System.out.print(tablica[i][j]+" ");

		}
		System.out.println("");

		}
}
}
0

Wrzuć to do pastebina chociaż, albo i wklej bezpośrednio na forum. Komu ma się chcieć to ściagać?

0

Primo sformatuj to. Wrzuć do NetBeans i kliknij Alt+Shift+F lub odpowiednik w Eclipse.

Mieszasz zmiennymi to podstawowy problem. Drugi problem to to, że:

public static int x;

to to samo co:

public static int x = 0;

Wszystkie pola statyczne są inicjalizowane przy ładowaniu klasy. Pola typu int czy long są inicjalizowane na 0, pola typu obiekt czy tablica są inicjalizowane na null - oczywiście o ile nie podamy inaczej.

Po trzecie te zmienne statyczne są tutaj niepotrzebne w zupełności. Statyczne, a więc globalne zmienne powinny być unikane za wszelką cenę. W tym przypadku możesz je przecież wrzucić bezpośrednio do funkcji main.

0

ale chodzi mi głównie o tą pętle for, co jest w niej nie tak, że niezależnie co wpisze wyświetla 0

chciałbym,żeby wypełniało i wyświetlało tablicę

0

Wypisz sobie wartości zmiennych i i j przed linią: tablica = new int[i][j];

0

nic to nie daje.dalej to samo

0

Ale co to samo?

Zmienne i, j mają wartość 0 obie w momencie utworzenia tablicy od nowa. A ty się potem dziwisz, że tablica jest pusta, albo że ci się program wywala.

0

w pętli for przecież przypisałem wartość.
taki błąd mam
--------------------Configuration: <Default>--------------------
Podaj liczbe kolumn.
3
Podaj liczbę wierszy.
4
java.lang.ArrayIndexOutOfBoundsException: 0
at programss.main(programss.java:56)
Exception in thread "main"
Process completed.

0

Starasz się chociaż zrozumieć, co Ci wibowit pisze?

tablica = new int[i][j];

Jaki rozmiar ma tablica?

0

sorry chłopaki, dziękuję za pomoc, bardzo mi pomogliście.
Proszę o usunięcie całego tematu ;) wszystko smiga jeszcze raz dzięki.

0
KrzysztofKatowice napisał(a)

sorry chłopaki, dziękuję za pomoc, bardzo mi pomogliście.
Proszę o usunięcie całego tematu ;) wszystko smiga jeszcze raz dzięki.

Nie usuwamy tematów... Rozwiązanie, które było dobre dla Ciebie może się w przyszłości komuś jeszcze przydać :)

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