Suche in dreidimensionalen Arrays

Lacritz

Mitglied
Heyho
folgendes:

Ich möchte eine Zahl n in einem beliebigen Array suchen

habe dazu folgenden Code geschrieben:
Java:
import javax.swing.JOptionPane;

public final class sucheinarrays {

	public static boolean contains(int[][][] array, int n) {
		int x = 10, y = 9, z = 13;
		int a = 0, b = 0, c = 0;
		array = new int[x][y][z];
		while (array[a][b][c] <= array[x][y][z]) {
			if (n == array[a][b][c]) {
				return true;
				while (c == z) {
					b++;
					c = 0;
					while (b == y) {
						a++;
						b = 0;
					}

				}

			}
		}
	}

	public static void main(String[] args) {
		int n = Integer.parseInt(JOptionPane.showInputDialog("n="));

	}

}

Jedoch wird mir bei dem If immer wieder ein Fehler angezeigt (sobald ich die while schleifen in die If bedingung nehme) - wie könnte man das Problem schaffen?

MfG Lacritz
 
Hi,
Du schreibst:
Java:
...
if (n == array[a][b][c]) {
   return true;
   while (c == z) {
       ...
   }
..
}
Wenn n == array[a][c] gibst Du direkt true zurück. Der Rest wird nicht mehr abgearbeitet.
Was mir auch noch auffällt, Du gibst nur true zurück aber nie ein false.

Vielleicht sowas?
Java:
...
if (n == array[a][b][c])
   return true;
else {
   while (c == z) {
       ...
   }
..
}
 
Zuletzt bearbeitet:
wie müsst ich das denn richtig Formulieren bei dem if? hatte vorher noch ein else drin was er mir jedes mal als Fehler angezeigt hatte.

das bei dem IF soll bedeuten dass wenn N in dem array bei stelle a , b, c ist wird true ausgeben - wenn if nicht an der stelle ist false

(da es sich aber um ein programm handelt was den array durch suchen soll wird das a / b / c bis zu x / y / z schritt weise erhöht
 
Hi,

Wenn Du die Kontrolle mit for- loops erstellen kannst, kannst du das so machen:
Java:
	public static boolean contains(int[][][] array, int n) {
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				for (int k = 0; k < array[i][j].length; k++) {
					if(n == array[i][j][k])
						return true;
				}
			}
		}
		return false;
	}
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben