Schachbrett mit Schleifen ausgeben

paco89

Bekanntes Mitglied
hallo, ich habe versucht folgende auffgabenstellung (s.Bild unten)zu programmieren, habe allerdings ein wenig probleme mit dem umgang mit Schleifen. es klappt nicht so wie ich will. ich habe folgenden code abgetippt:



Java:
public class Schleifen
{
 	static char[] arrayBuchstaben = new char [8];	
	static int [] arrayZahlen = new int [8];

    public static void main (String[] args){
		
	for(int i = 1; i <= 8 ; i++){
		for(int j = 1 ; j <= 8 ; j++){
			for(char c = 'A' ; c<= arrayBuchstaben.length ; c++){
				
				for(int z = 1; z<= arrayZahlen.length; z++){
					arrayBuchstaben[i] = c;
					arrayZahlen[j] = z;
					System.out.println(arrayBuchstaben[i] + "" + arrayZahlen[j] );
			}
		    }
		}
	}
		
    }	

}



es kompiliert zwar, aber es wird nichts angezeigt. vtl. habe ich das mit den schleifen auch ein wenig übertrieben...ich weiß es nicht. hat jmd. vtl. andere ansätze?
 

Anhänge

  • Bildschirmfoto-1.png
    Bildschirmfoto-1.png
    10,6 KB · Aufrufe: 136
G

Gast2

Gast
Die dritte for Schleife wird nie durchlaufen.
Code:
'A'
entspricht dezimal 65, und das ist schon größer als dein Array. Die Bedingung liefert also direkt false.
 
?

_-|-_

Gast
Gucke mal:
Java:
		for(int n = 8; n > 0; --n){
			for(char c = 'A'; c <= 'H'; ++c){
				System.out.print(""+c+n+" ");
			}
			System.out.println();
	}

Du hast 2 schleifen.
Die erste (
Code:
for(int n = 8; n > 0; --n)
) geht die Zahlen von 8 bis 1 durch.
Dan hast du eine zweite Schleife (
Code:
for(char c = 'A'; c <= 'H'; ++c)
), diese geht die Buchstaben von 'A' bis 'H' durch.
Jetzt wird einfach kombiniert, jede zahl wird einmal mit allen Buchstaben ausgegeben.

Hoffe ich konnte helfen.
 

paco89

Bekanntes Mitglied
ja, schon vielen dank für die hilfe, aber auf dem bild mussten die spalten ja nebeneinander sein. das kriege ich nicht hin.
 
N

nillehammer

Gast
ja, schon vielen dank für die hilfe, aber auf dem bild mussten die spalten ja nebeneinander sein. das kriege ich nicht hin.
Dann vertausch einfach innere und äußere Schleife (also im Prinzip nur die Zeilen 1 und 2 aus _-|-_'s Code).
 
Zuletzt bearbeitet von einem Moderator:

paco89

Bekanntes Mitglied
Ich hab das jetzt umgeformt zu:

Java:
public class Schleifen
{
 	

    public static void main (String[] args){
		
	for(char c = 'A'; c <= 'H'; ++c){
		for (int n = 8 ; n>0; --n ){
			System.out.println("" + c + n +" ");
		}
		System.out.println();
	}
		
    }	

}

aber da kommt dasselbe raus.
 
H

hüteüberhüte

Gast
Also man geht schrittweise von links oben nach rechts unten, d.h., die äußere Schleife geht von 8 bis 1, die innere geht von 'A' bis 'H'. Innerhalb der Schleife erfolgt dann die Ausgabe
 

Swoop

Gesperrter Benutzer
Wenn du
Code:
 System.out.print()
nutzt anstatt
Code:
System.out.println()
dann wird nicht nach jeder Zeile ein Zeilenumbruch gemacht!
 

faetzminator

Gesperrter Benutzer
Java:
for (int n = 8; n > 0; --n) {
    for (char c = 'A'; c <= 'H'; ++c) {
        System.out.printf("%c%d ", c, n);
    }
    System.out.println();
}
Nur ein Programm ohne "" ist ein gutes Programm :oops:
 
H

hüteüberhüte

Gast
Hier ist mein Vorschlag:

Java:
    public static void main(String[] args) {
        StringBuilder b = new StringBuilder();
        for (int i = 8; i >= 1; i--) {
            for (char c = 'A'; c <= 'H'; c++) {
                b.append(c);
                b.append(i);
                b.append(' ');
            }
            b.deleteCharAt(b.length() - 1);
            b.append(System.getProperty("line.separator"));
        }
        System.out.print(b);
    }

Jetzt hat er drei zur Auswahl
 

faetzminator

Gesperrter Benutzer
hüteüberhüte, wollte ich zuerst auch bringen. Dann haben mich die 3 Zeilen gestört, hab über String.valueOf() nachgedacht und bin bei [c]printf()[/c] gelandet :D
 

Neue Themen


Oben