Schachbrett mit while-schleifen

Che60

Mitglied
Hallo liebe Leute,

bin neu hier und da ich einfach nicht mehr weiterkomme dachte ich mir hol ich mir hier halt hilfe... also ich geh mal gleich zur aufgabenstellung rüber und kopier hier mal mein code rein:

die aufgabenstellung:
Schreiben Sie Ihr Programm Chessboard so, dass Sie optional 2 weitere Kommandozeilenparameter übergeben können. Der erste ist eine Zeilennummer, der zweite eine Spaltennummer. Genau an dieser Koordinate soll statt einem - oder + ein X stehen. Liegt
die Koordinate außerhalb des Schachbrettes wird sie ignoriert.
Hinweis: Mit args.length können Sie die Länge des args-Arrays herausbekommen. Das
Programm soll nach wie vor auch mit nur einem Kommandozeilenparameter funktionieren.
Beispiele:
$ ./gradlew run -Dexec.args="8 3 7"
- + - + - + - +
+ - + - + - + -
- + - + - + X +
+ - + - + - + -
- + - + - + - +
+ - + - + - + -
- + - + - + - +
+ - + - + - + -

und das ist mein code:

class Chessboard {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int p = Integer.parseInt(args[1]);
int y = Integer.parseInt(args[2]);
int b = a;
int k = 1;
int i = 1;
while (k <= b) {
k++;
i = 1;
while (i <= a) {
i++;
if (k - 1 == p && i - 1 == y) {
System.out.print("X");
} else
if ((i + k) % 2 != 0) {
System.out.print("+");
} else {
System.out.print("-");
}
if (i <= a) {
System.out.print(" ");
}
}
System.out.print("\n");
}
}
}

das problem ist, wenn ich einen parameter eingebe, geht es leider nicht... wie kann ich jetzt weitermachen?

liebe grüße und danke schonmal
 

Che60

Mitglied
also ich hab das jetzt mit der try/catch methode versucht aber irgendwie kriege ich die auch nicht so ganz auf die reihe... bin schon am verzweifeln...
 

Robat

Top Contributor
Was genau ist dein Problem mit Arrays? Wo hängt es jetzt gerade genau?

Poste dein Code bitte in [code=Java] CODE[/code] Tags.
 

TheWhiteShadow

Bekanntes Mitglied
Du sollst ja das Programm einmal mit einem und einmal mit 3 Argumenten aufrufen. Folglich ist args.length einmal 1 und einmal 3. Du kannst natürlich nur auf den Index 1 und 2 zugreifen, wenn args mindestens die Länge 3 hat damit diese Elemente auch da sind.
Du musst also vor args[1] prüfen, wie lang das Array ist.
Java:
int p, y; // Müssen vorher deklariert werden, da wir sie unterschiedlich initialisieren können.
if (args.length == 3) { // Muss doch 3 sein. Mein Fehler
p = Integer.parseInt(args[1]);
y = Integer.parseInt(args[2]); // <-- Letzter Eintrag im Array: 2 + Index 0 = 3
} else {
// damit X nicht auftaucht.
p = -1;
y = -1;
}
 

Che60

Mitglied
hab den code jetzt umgeschrieben:
Java:
class Chessboard {
  public static void main(String[] args) {
    int size;
    int y;
    int x;
    if (args.length == 3) {
      size = Integer.parseInt(args[0]);
      y = Integer.parseInt(args[1]);
      x = Integer.parseInt(args[2]);
    } else {
      size = Integer.parseInt(args[0]);
      x = -1;
      y = -1;
    }
    int i = 1;
    int j;

    while (i <= size) {
      j = 1;

      while (j <= size) {
        if (i == y && j == x) {
          System.out.print(" X");
        } else {
          if ((i + j) % 2 == 0) {
            System.out.print(" -");
          } else {
            System.out.print(" +");
          }
        }
        j++;
      }
      System.out.print("\n");
      i++;
    }
  }
}
der funktioniert auch, aber wenn ich mit powershell die abfrage mache gibt es mir einen vergleichsfehler aus... ich weiß dass da eine leerzeile hinten oder vorne zu viel ist, aber weiß halt nicht was ich sonst machen soll. hier der fehler:
Test chessboard_4 FAILED

org.junit.ComparisonFailure: expected:<[- + - +
+ - + -
- + - +
]+ - + -
> but was:<[ - + - +
+ - + -
- + - +
]+ - + -
>
at ChessboardTest.chessboard_4(ChessboardTest.java:73)

Test chessboard_5 FAILED

org.junit.ComparisonFailure: expected:<[- + - + -
+ - + - +
- + - + -
+ - + - +
]- + - + -
> but was:<[ - + - + -
+ - + - +
- + - + -
+ - + - +
]- + - + -
>
at ChessboardTest.chessboard_5(ChessboardTest.java:85)

Test chessboard_6 FAILED

org.junit.ComparisonFailure: expected:<[- + - + - +
+ - + - + -
- + - + - +
+ - + - + -
- + - + - +
]+ - + - + -
> but was:<[ - + - + - +
+ - + - + -
- + - + - +
+ - + - + -
- + - + - +
]+ - + - + -
>
at ChessboardTest.chessboard_6(ChessboardTest.java:98)



10 tests completed, 9 failed
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Schachbrett mit for- oder while-Schleife Allgemeine Java-Themen 22
S Java Applet: digitales Schachbrett Allgemeine Java-Themen 7
G Zug eines Pferdes auf dem Schachbrett Allgemeine Java-Themen 3
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
M While-Schleife schneller, solange die Abbruchbedingung nicht vom Schleifeninneren abhängt Allgemeine Java-Themen 3
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
A Swing Taschenrechner while Schlaufe Allgemeine Java-Themen 12
I NullPointer während while(){} Allgemeine Java-Themen 4
N Frage zur while-Schleife Allgemeine Java-Themen 18
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
S for-Schleife, while-Schleife Problem Allgemeine Java-Themen 6
R while schleife auf 3 durchgänge beschränken Allgemeine Java-Themen 6
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
D ProcessBuilder und die while() Allgemeine Java-Themen 3
S Do-While Schleife bricht nicht ab Allgemeine Java-Themen 3
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
J Thread pausieren, lange while-Schleife Allgemeine Java-Themen 8
W While-ESC-Schleife funktioniert nicht Allgemeine Java-Themen 3
H Threads.... ich will aus der While-Schleife raus Allgemeine Java-Themen 6
V Problem in While-Schleife Allgemeine Java-Themen 3
J Konsolen Anwendung mit while(true) Allgemeine Java-Themen 6
T getParameter in while schleife Allgemeine Java-Themen 3
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5
M Problem mit while/do Schleife Allgemeine Java-Themen 12
B Try/Catch in While-Schleife mit Scanner - Hilfe! Allgemeine Java-Themen 3
N while Schlauf und ActionEvent Allgemeine Java-Themen 2
L Exception auslösen, um while Schlaufe zu verlassen(rxtx.org) Allgemeine Java-Themen 6
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
N vergleich mit while und for schleife Allgemeine Java-Themen 7
B while mit BufferedReader beenden Allgemeine Java-Themen 5
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 2
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 1
A Mehrere for-Schleifen Allgemeine Java-Themen 2
Monokuma Foreach Schleifen in Streams umändern Allgemeine Java-Themen 23
Junger_Basileus Attribute, Arrays, Schleifen Allgemeine Java-Themen 9
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
P Erste Schritte Dynamische Anzahl von verschachtelten Schleifen Allgemeine Java-Themen 5
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
R n verschachtelte Schleifen? Allgemeine Java-Themen 14
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
R Schleifen Allgemeine Java-Themen 11
L for-Schleifen Zählfehler Allgemeine Java-Themen 6
G Code nach Schleifen und Verzweigungen durchsuchen Allgemeine Java-Themen 6
S verzweigungen und schleifen Allgemeine Java-Themen 24
B BigDecimal Schleifen Allgemeine Java-Themen 9
prakdi Zeit zum Durchlauf der Schleifen unverständlich!? Allgemeine Java-Themen 3
B Auslagerung von verschachtelten Schleifen Allgemeine Java-Themen 11
T Verschachtelte Schleifen abbrechen Allgemeine Java-Themen 3
Meldanor For-Schleifen - byte statt int? Allgemeine Java-Themen 11
S Verschachtelte Schleifen Allgemeine Java-Themen 9
Z GC -> Allokation in Schleifen Allgemeine Java-Themen 25
A Fibonacci-Zahlen & kopfgesteuerte Schleifen & Strukt Allgemeine Java-Themen 8
V Vererbung und Schleifen Allgemeine Java-Themen 5
W kompliziertes Konstrukt von Schleifen/If/else. Rekursion? Allgemeine Java-Themen 22
S schleifen Allgemeine Java-Themen 3
A Schleifen in Ant? Allgemeine Java-Themen 5
G Methode mit Schleifen NullPointerException Allgemeine Java-Themen 2
L Schleife über Schleifen Allgemeine Java-Themen 4
M Verschachtelte Schleifen (unbekannte Tiefe) Allgemeine Java-Themen 3
N Code verkürzen(mit schleifen)? Allgemeine Java-Themen 10
C Effektivitaet bei for Schleifen Allgemeine Java-Themen 18
C Performance von FOR Schleifen Allgemeine Java-Themen 25
R Lohnt sich byte und short bei Schleifen? Allgemeine Java-Themen 9
P Schleifen liefern Werte nicht wie erwartet Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben