Eine Krone in der Textausgabe - Mein Code

A

AkiHawasaki

Mitglied
Hallo, ich möchte eine Ascii Krone ausgeben. Mein Code sieht so aus:

Java:
public class krone {
    public static void main (String[]args){
       final int breite=19;
       final int haelftebreite=9;
       final int hoehe=haelftebreite;
        for (int i=0; i<hoehe;i++){
        for (int j=0; j<breite;j++){
        switch (i){
            case 0:
                System.out.print((j==0||j==9||j==18)? "*" : " ");
                System.out.print((j==0||(j==haelftebreite)||j==breite-1)?"*":" ");
                break;
                default:

                    System.out.print((j<i || (j>haelftebreite-i && j<haelftebreite+i) || j>breite-i)? 0:" ");

        }
        }

            System.out.println();
    }
}}

Was ich nicht verstehe, wenn ich das letzte System.out.println(); weglasse werden die nullen nebeneinander ausgegeben und nicht untereinander. Liegt das daran dass dieses println quasi die äußere Schleife anspricht und quasi sagt, gib die äußere schleife in jeder zeile aus?
 
mihe7

mihe7

Top Contributor
println() gibt einen Zeilenumbruch aus. Ohne diesen wird alles nebeneinander geschrieben.

Java:
System.out.print("A");
System.out.print("B");
System.out.println();
System.out.println("C");
System.out.println("D");
liefert:
Code:
AB
C
D
Das erste println nach der Ausgabe von "B" sorgt dafür, dass nach dem "B" die Zeile umgebrochen wird. Zum Vergleich:
Java:
System.out.print("A");
System.out.print("B");
System.out.println("C");
System.out.println("D");
liefert:
Code:
ABC
D
 
ItzNitroX

ItzNitroX

Mitglied
Hallo, ich möchte eine Ascii Krone ausgeben. Mein Code sieht so aus:

Java:
       for (int i=0; i<hoehe;i++){
          for (int j=0; j<breite;j++){
          }
          System.out.println();
       }
   }
}
Du startest in deiner ersten Zeile (im Ausgabefenster, nicht im Code) und sagst er solle dir jetzt Zeichen in die Breite setzen.
Wenn das erledigt ist soll er dir mit SOPLN in die nächste Zeile springen.
Dann geht es weiter mit der zweiten Zeile. Wieder Zeichen in die Breite und SOPLN.
Dritte Zeile usw.

Ich hoffe ich konnte es verständlich erklären.
VG Nico
 
A

AkiHawasaki

Mitglied
Code:
 for (int i=0; i<hoehe;i++){
        for (int j=0; j<breite;j++){
     
 switch (i){
            case 0:

{

Ich bin gerade wieder an der selben Aufgabe und verstehe meinen Code nichtmehr.
Was genau sage ich in der ersten Zeile? Ich erschaffe einen int mit namen i und wert 0 und sage solange dieses i kleiner als die höhe ist soll i um eins erhöht werden. Mit dieser Anweisung durchlaufe ich jedes einzelne Feld in meiner Krone? Oder nur die höhe?
in der nächsten Zeile wiederhole ich das ganze, nur diesmal in die breite oder?
Mit switch i sage ich später, im fall dass i die höhe 0 hat (was es ja tut) tu Anweisungen.
 
K

kneitzel

Gast
Die erste For-Schleife ist für die Zeilen zuständig. Es soll also aus <hoehe> Zeilen bestehen und die bekommst Du so. (Evtl. i zu zeile oder von mir aus auch y oder yKoordinate umbenennen! x/y ist halt üblich für so Koordinaten.)

Die zweite Schleife ist dann für die Breite. Da kann dann das j auch umbenannt werden. Wenn man erstes zu y umbenannt hat, dann wäre dies x oder eben xKoordinate).

Und ja - switch prüft derzeit auf erste Zeile (i=0) oder eben default.
 
A

AkiHawasaki

Mitglied
ok, ich muss es mir angewöhnen die mal x und y zu nennen. bin eben durcheinander gekommen.
 
ItzNitroX

ItzNitroX

Mitglied
Um es grafisch darzustellen:

Breite//x-Achse in []
Höhe//y- Achse in ()
[(X) X X X X]
(X) X X X X
(X) X X X X

Erste For- Schleife = Höhe auswählen zb Höhe 0
Zweite For- Schleife = Breite auswählen zb gehe 5 in Breite

EDIT: Ich hab mich jetzt so oft verwirrt damit weil es grafisch anders ist als man es denken muss.
 
A

AkiHawasaki

Mitglied
Was mache ich denn jetzt wenn ich ihm sagen will gib in 0 über die gesamte breite ein "_" aus.
Dann lasse 9 Zeilen frei und gib in der 10. Zeile wieder komplett "_" aus?


Code:
public class Straße {
    public static void main (String[]args) {
        int breite = 15;
        int hoehe = 10;

        for (int i = 0; i < breite; i++) {
        for (int j = 0; j < hoehe; j++){
            if (i < breite) {
                System.out.print("_");
            }else System.out.println(" ");
        }

    }}

Funktioniert nicht
 
mihe7

mihe7

Top Contributor
Was mache ich denn jetzt wenn ich ihm sagen will gib in 0 über die gesamte breite ein "_" aus.
Dann lasse 9 Zeilen frei und gib in der 10. Zeile wieder komplett "_" aus?
Du musst Dir überlegen, dass die Ausgabe des Texts von links nach rechts und von oben nach unten erfolgt. Du musst also Zeile für Zeile ausgeben.

Machen wir das mal ganz einfach:
Java:
for (int y = 0; y < hoehe; y++) {
    System.out.print("Zeile " + y);
    System.out.println();
}
Beispielhafte Ausgabe:
Code:
Zeile 0
Zeile 1
...
Zeile 9

Ich habe dabei die Ausgabe auf zwei Befehle verteilt: der erste schreibt den Text von links nach rechts und der zweite fügt den Zeilenumbruch ein. Warum ich das so gemacht und nicht einfach System.out.println("Zeile " + y); verwendet habe, wirst Du gleich sehen.

Du kannst jetzt abfragen, ob Du gerade die erste oder die letzte Zeile ausgibst:
Java:
for (int y = 0; y < hoehe; y++) {
    if (y == 0 || y == hoehe-1) {
        System.out.print("*****");
    } else {
        System.out.print("Zeile " + y);
    }
    System.out.println();
}
Beispielhafte Ausgabe:
Code:
*****
Zeile 1
...
Zeile 8
*****
Wenn Du jetzt den else-Zweig weglässt, erhältst Du zwischen der ersten und der letzten Zeile nur Leerzeilen, weil das System.out.println() in jeder Iteration (= Schleifendurchlauf) ausgeführt wird.

Java:
for (int y = 0; y < hoehe; y++) {
    if (y == 0 || y == hoehe-1) {
        System.out.print("*****");
    }
    System.out.println();
}

Die Ausgabe der Sternchen müssen wir jetzt nur noch durch Ausgabe von der Breite entsprechend vielen "_" ersetzen.
Java:
for (int y = 0; y < hoehe; y++) {
    if (y == 0 || y == hoehe-1) {
        for (int x = 0; x < breite; x++) {
            System.out.print("_");
        }
    }
    System.out.println();
}



Möglicherweise wurden von den Betreibern des Forums ungekennzeichnete Werbetexte in meinen Beitrag eingefügt, die nicht als solche erkennbar sind. Das können beispielsweise Kursempfehlungen sein. Ich distanziere mich davon und empfehle, solchen Links nicht zu folgen.
 
A

AkiHawasaki

Mitglied
Code:
for (int x = 0; x < breite; x++) {
            System.out.print("_");
wird also quasi nur dann ausgeführt wenn Bediengung
y == 0 || y == hoehe-1)
erfüllt ist.

Das System.out.println wird 10x wiederholt weil es sich in der ersten schleife befindet. Also wird die innere Schleife aufgrund der bediengung quasi nur 2x ausgeführt. Richtig?
 
mihe7

mihe7

Top Contributor
Das System.out.println wird 10x wiederholt weil es sich in der ersten schleife befindet. Also wird die innere Schleife aufgrund der bediengung quasi nur 2x ausgeführt. Richtig?
So ist es.

Möglicherweise wurden von den Betreibern des Forums ungekennzeichnete Werbetexte in meinen Beitrag eingefügt, die nicht als solche erkennbar sind. Das können beispielsweise Kursempfehlungen sein. Ich distanziere mich davon und empfehle, solchen Links nicht zu folgen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
C Methoden Java ist auch eine Insel Listing 2.40 Recursion Java Basics - Anfänger-Themen 7
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
P Eine komplizierte Sache Java Basics - Anfänger-Themen 1
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
T Wie eine Komposition garantieren Java Basics - Anfänger-Themen 5
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
L Muss eine HttpURLConnection geschlossen werden? Java Basics - Anfänger-Themen 2
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
V Erste Schritte Eine Array-Variable mit Benutzereingaben befüllen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
E Kreis soll eine Raupe darstellen Java Basics - Anfänger-Themen 37
P Alles eine Typfrage Java Basics - Anfänger-Themen 7
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
W Zwei Programme sollen auf eine Klasse zugreifen Java Basics - Anfänger-Themen 18
V Wie wiederhole ich eine for-Schleife beim erreichen eines Wertes Java Basics - Anfänger-Themen 9
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
L Klassen Wie “installiert” man eine Klasse? Java Basics - Anfänger-Themen 2
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
X Wo steht, ob eine Datei big, little oder bi-endian codiert ist? Java Basics - Anfänger-Themen 3
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
O Iterator für eine geordnete Menge Java Basics - Anfänger-Themen 134
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
R Warnung, wenn eine Variable eingegeben wird Java Basics - Anfänger-Themen 6
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
scratchy1 Wie deklariert man eine Methode, die ein Objekt zurückgeben soll? Java Basics - Anfänger-Themen 22
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
H Eine befühlte Klasse weiter geben an Controller Java Basics - Anfänger-Themen 12
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
O Bedingter Operator eine Frage! Java Basics - Anfänger-Themen 10
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Wie gebe ich bei android eine string im programm aus? Java Basics - Anfänger-Themen 4
R Auf eine Stelle [i] des Arrays zugreifen Java Basics - Anfänger-Themen 7
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
J Algorithmus für eine Reihe implementieren Java Basics - Anfänger-Themen 2
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
V Compiler-Fehler Warum eine IndexOutOfBoundsException? Java Basics - Anfänger-Themen 3
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
I Wie benutzt man eine Klasse? Java Basics - Anfänger-Themen 13
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
F Aus geraden eine Kurve machen Java Basics - Anfänger-Themen 6
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
E Ist eine Datenvearbeitung eine kritische Operation? Java Basics - Anfänger-Themen 1
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
L Collections Ist eine Arraylist hier das richtige? Java Basics - Anfänger-Themen 12
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
A Variablen Main Klasse soll auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben