Variablenzuweisung aus Wertebereich

duffbeer2006

Grünschnabel
Hallo,

hab n Problem (das ich möglichst heute noch lösen sollte) zur Zuweisung von Variablen, die aus nem Wertebereich kommen. Also hier maln kleines Beispiel:

Ich habe die Variablen a, b, und c. Der Wertebereich ist {1,2,3}. Nun soll jeder Variablen jeder mögliche Wert aus dem Wertebereich zugewiesen werden, aber es muss immer gelten: a != b != c. Bei diesem Beispiel sollte also folgendes ausgedruckt werden:

a:1 b:2 c:3
a:1 b:3 c:2
a:2 b:1 c3
a:2 b:3 c:1
a:3 b:1 c:2
a:3 b:2 c:1

Die Reihenfolge kann natürlich variieren...wie schreibe ich das in Java?

Schonmal danke für eure Bemühungen..ich glaub an euch
 
Hab an sowas wie unten gedacht, aber das funktioniert so nicht:

Code:
public class TestClass {

    static int a = 0;
    static int b = 0;
    static int c = 0;
    static int[] pool = {1, 2, 3};

    public static void main(String[] args) {

        for (int l = 0; l < pool.length; l++) {
            a = pool[l];
            for (int m = 0; m < pool.length; m++) {
                if (pool[m] != a) {
                    b = pool[m];
                }
                for (int n = 0; n < pool.length; n++) {
                    if (pool[n] != a && pool[n] != b) {
                        c = pool[n];
                    }
                    if (a != 0 && b != 0 && c != 0) {
                        System.out.println("a:" + a + " b:" + b + " c:" + c);
                    }
                }
            }
        }
    }
}
 
Hallo,

schau mal hier
Java:
public class Testklasse {

	static int a = 0;

	static int b = 0;

	static int c = 0;

	static int[] pool = { 1, 2, 3 };

	public static void main(String[] args) {

		for (int l = 0; l < pool.length; l++) {
			a = pool[l];
			for (int m = 0; m < pool.length; m++) {
				if (pool[m] != a) {
					b = pool[m];

					for (int n = 0; n < pool.length; n++) {
						if (pool[n] != a && pool[n] != b) {
							c = pool[n];
							if (a != 0 && b != 0 && c != 0) {
								System.out.println("a:" + a + " b:" + b + " c:"
										+ c);
							}
						}

					}

				}
			}
		}
	}
}


Das nächste mal lass das Programm mal durch den Debugger laufen, dann siehst du selbst, wo die Probleme liegen.

MFG

Sascha
 
Danke für die schnelle Antwort!

Allerdings erhalte ich diese Ausgabe:
a:1 b:2 c:3
a:1 b:3 c:2
a:2 b:1 c:3
a:2 b:1 c:3
a:2 b:3 c:1
a:3 b:1 c:2
a:3 b:2 c:1
a:3 b:2 c:1

Und da werden ja zwei Zeilen doppelt ausgegeben, was eigentlich nicht sein sollte...
 
Zurück