Java : mit Zwei schleifen soll so ein Muster ausgegeben werden wie mache ich das?


03.03.2024, 10:36

Kam bisher soweit

2 Antworten

int zeile, spalte;
String symbol;
String [] symbole=("-","+","*","/");

for(zeile=0;zeile<=8;zeile++) {
  symbol = "   " + symbole[zeile % 4];
  if (zeile==8) symbol=" ende";
  for(spalte:=0;spalte<=9;spalte++) {
    System.out.print(symbol);
  }
  System.out.println();
  System.out.println();
}

Ungetestet.

Die äußere Schleife geht die Zeilen durch. Danach wird das zu druckende Symbol festgelegt. "zeile % 4" ist der Rest bei Division der Zeilennummer durch 4, da kommt also 0..3 raus, d.h. es wird dann jeweils das 0. bis 3. Symbol aus dem Array zugewiesen. Das "ende" braucht dann noch eine Extrabehandlung. Dann kommt die innere Schleife, wo das Symbol ausgegeben wird. Nach der Schleife (aber noch innerhalb der Äußeren) dann 2x der Zeilenumbruch für eine neuen Zeile.

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin

Mylife358 
Beitragsersteller
 03.03.2024, 10:29

Also symbol = " " + symbole[zeile % 4] sowas in der Art hatten wir noch überhaubt nicht, gibt es denn eine Option ohne.Wenn nicht muss ich meinen Lehrer dann einf Fragen. Dankeschön.

0
iQa1x  03.03.2024, 16:44
@Mylife358

Dann lass die Zeile und oben das sombole-Array halt weg und schreibe da 4 if-Zeilen rein, wie if ((zeile==0) || (zeile==4)) symbol = " -";

Das || steht für ODER.

0
malte314  03.03.2024, 17:41
  • Java array initialization verlangt { }, nicht ( ) (Z. 3)
  • den Walross-Operator := gibt es in Java nicht (Z. 7)
  • in Zeile 7 muss es darüber hinaus < 9 leuten, sonst ist es eine Spalte zu viel

Kann man ohne kompilieren immer schnell in der jshell testen, die bei den meisten modernen Java Distributionen dabei ist.

0
iQa1x  03.03.2024, 19:58
@malte314

Hast Recht, ich mache schon eine Weile kein Java mehr und bei den Spalten habe ich mich einfach verzählt. In Z.7 muss es einfach = statt := sein. Hätte e vorher evtl. mal in einem Online Java testen sollen, habe hier gerade kein Java drauf...

0
Wie kriege ich das hin?

Eine Schleife für die Zeilen, darin noch eine für die "Spalten".

Du musst es nicht gleich perfekt machen. Versuch z.B. mal, immer dasselbe Zeichen in diesem Muster auszugeben.