Grüsse Java Community. Ich bastle ein bisschen mit Arrays rum und will in dem Zusammenhang ein Progrämmchen machen. Dies besteht aus einem eindimensionalen Array. Irgendwo in diesem Array befindet sich ein "X" (Im Konstruktor festgelegt). Dieses X möchte ich nun gerne mithilfe einer Tastatureingabe (l und r) hin und her verschieben können. Dafür habe ich eine Klasse tisch gemacht:
Und hier die Testklasse:
Wenn ich nun das ganze teste funktioniert nur das nach links verschieben, wobei der letzte Wert im Array immer übersprungen wird. Möchte ich nun gerne nach rechts verschieben tut sich nichts. Ich kann leider nirgends einen Fehler finden und wäre nun sehr dankbar für Tipps! Untenstehend poste ich noch den Output:
--X----
Geben Sie r für Rechts und l für Links ein:
l
-X-----
Geben Sie r für Rechts und l für Links ein:
l
X------
Geben Sie r für Rechts und l für Links ein:
l
-----X-
Geben Sie r für Rechts und l für Links ein:
r
X------
Geben Sie r für Rechts und l für Links ein:
r
X------
Geben Sie r für Rechts und l für Links ein:
r
X------
Vielen Dank im Voraus für eure Hilfe! Liebe Grüss Michael
Java:
import java.lang.String;
import java.util.Scanner;
public class tisch{
private String[] tisch = new String[7];
public String richtung;
//Konstruktor
public tisch(){
tisch[0] = "-";
tisch[1] = "-";
tisch[2] = "-";
tisch[3] = "-";
tisch[4] = "-";
tisch[5] = "-";
tisch[6] = "X";
richtung = "";
}
//Methode zur Eingabe der Richtung und anschliessendem anpassen des Wertes im Array
public void zuweisung(){
Scanner Scan = new Scanner(System.in);
System.out.println("Geben Sie r für Rechts und l für Links ein:");
richtung = Scan.nextLine();
if(richtung.equals("r")){
if(tisch[0].equals("X")){
tisch[0] = "-";
tisch[1] = "X";}
if(tisch[1].equals("X")){
tisch[1] = "-";
tisch[2] = "X";}
if(tisch[2].equals("X")){
tisch[2] = "-";
tisch[3] = "X";}
if(tisch[3].equals("X")){
tisch[3] = "-";
tisch[4] = "X";}
if(tisch[4].equals("X")){
tisch[4] = "-";
tisch[5] = "X";}
if(tisch[5].equals("X")){
tisch[5] = "-";
tisch[6] = "X";}
if(tisch[6].equals("X")){
tisch[6] = "-";
tisch[0] = "X";}
}else{
if(richtung.equals("l")){
if(tisch[0].equals("X")){
tisch[0] = "-";
tisch[6] = "X";}
if(tisch[1].equals("X")){
tisch[1] = "-";
tisch[0] = "X";}
if(tisch[2].equals("X")){
tisch[2] = "-";
tisch[1] = "X";}
if(tisch[3].equals("X")){
tisch[3] = "-";
tisch[2] = "X";}
if(tisch[4].equals("X")){
tisch[4] = "-";
tisch[3] = "X";}
if(tisch[5].equals("X")){
tisch[5] = "-";
tisch[4] = "X";}
if(tisch[6].equals("X")){
tisch[6] = "-";
tisch[5] = "X";}
}else
{System.out.println("Falsche Eingabe. Beende Programm...");}
};
};
//Ausgabe
public void ausgabe(){
System.out.print("\n");
System.out.print(tisch[0]);
System.out.print(tisch[1]);
System.out.print(tisch[2]);
System.out.print(tisch[3]);
System.out.print(tisch[4]);
System.out.print(tisch[5]);
System.out.print(tisch[6]);
System.out.print("\n");
};
}
Und hier die Testklasse:
Java:
import java.lang.String;
public class test{
public static void main(String args[]){
tisch test = new tisch();
test.ausgabe();
test.zuweisung();
test.ausgabe();
while(test.richtung.equals("l")){
test.zuweisung();
test.ausgabe();
while(test.richtung.equals("r")){
test.zuweisung();
test.ausgabe();
}
}
while(test.richtung.equals("r")){
test.zuweisung();
test.ausgabe();
while(test.richtung.equals("l")){
test.zuweisung();
test.ausgabe();
}
}
}
}
Wenn ich nun das ganze teste funktioniert nur das nach links verschieben, wobei der letzte Wert im Array immer übersprungen wird. Möchte ich nun gerne nach rechts verschieben tut sich nichts. Ich kann leider nirgends einen Fehler finden und wäre nun sehr dankbar für Tipps! Untenstehend poste ich noch den Output:
--X----
Geben Sie r für Rechts und l für Links ein:
l
-X-----
Geben Sie r für Rechts und l für Links ein:
l
X------
Geben Sie r für Rechts und l für Links ein:
l
-----X-
Geben Sie r für Rechts und l für Links ein:
r
X------
Geben Sie r für Rechts und l für Links ein:
r
X------
Geben Sie r für Rechts und l für Links ein:
r
X------
Vielen Dank im Voraus für eure Hilfe! Liebe Grüss Michael