Fehler im Tutorital

.maik.

Bekanntes Mitglied
Hi.
Ich lerne Java auf gailer-net.de . Im 17. Kapitel geht es um Zählerschleifen und man soll ein Programm entwerfen was einen fragt wie viele Sterne pro Zeile ausgegeben werden sollen und wie viele Zeilen ?
Das ist das Programm :
Java:
i
mport java.io.*;

class Sternchen
{
  public static void main (String[] args ) throws IOException
  {
    int anzahlZeilen;    // die Anzahl der Zeilen
    int anzahlSterne;    // die Anzahl der Sterne pro Zeile
    int zeile;           // aktuelle Zeilennummer
    int stern;           // die Anzahl der Sterne in dieser Zeile soweit

    BufferedReader userIn = new BufferedReader (new InputStreamReader(System.in));
    String inputData;

    // Input vom Anwender sammeln
    System.out.println( "Wie viele Zeilen?" );
    inputData = userIn.readLine();
    anzahlZeilen   = Integer.parseInt( inputData );

    System.out.println( "Wie viele Sterne pro Zeile?" );
    inputData = userIn.readLine();
    anzahlSterne  = Integer.parseInt( inputData );

    zeile  =  1;
    while ( zeile <= anzahlZeilen )
    {
      stern = 1;
      while ( stern <= anzahlSterne )
      {
        System.out.print("*");
        stern = stern + 1;
      }

      System.out.println();         // notwendig, um jede Zeile zu beenden
      zeile = zeile + 1;
    }
  }
}

Dieser Code hat ein Bug, da die * nicht in einer Zeile sind. Kann man das also nicht so realisieren. System.out.println() eröffnet also stets eine neue Zeile ?
 
ne also ich habe es jetzt mehrmals getestet und immer wieder werden die *, die eig in einer zeile sein sollten, untereinnader dargestellt. danach wird nur eine Zeile freigelassen.
 
So wie du es im 1. Post selber geschrieben hast:
Ausgabe von Sternen
Code:
print
, dannach
Code:
println
 
Also ich hab den oben stehenden Code kopiert und probiert und alles läuft so wie es sollte (mal von dem ungültigen Zeilenumbruch zwischen Zeile 1 & 2 abgesehen).

Ausgabe
Code:
Wie viele Zeilen?
5
Wie viele Sterne pro Zeile?
5
*****
*****
*****
*****
*****

Also wo ist das Problem? 😉
 
häh? ich habe genau das programm gerade noch einmal ausprobiert und mit eingabeaufforderung compiliert und gestartet und es hat immer noch diesn bug. ist ja komisch ?
 
Und Du bist Dir wirklich sicher, dass bei Dir im Code in Zeile 31 bzw. 30

Java:
System.out.print("*");

steht und nicht

Java:
System.out.println("*");

?
 
@preachie: Ja logo, muss ja so sein. Sonst würdest du ja für jeden Stern eine neue Zeile machen, willst aber anscheinend erst nach jedem 5ten Stern ne neue Zeile 😉
 
Java:
import java.io.*;

class Sternchen
{
  public static void main (String[] args ) throws IOException
  {
    int anzahlZeilen;    // die Anzahl der Zeilen
    int anzahlSterne;    // die Anzahl der Sterne pro Zeile
    int zeile;           // aktuelle Zeilennummer
    int stern;           // die Anzahl der Sterne in dieser Zeile soweit

    BufferedReader userIn = new BufferedReader (new InputStreamReader(System.in));
    String inputData;

    // Input vom Anwender sammeln
    System.out.println( "Wie viele Zeilen?" );
    inputData = userIn.readLine();
    anzahlZeilen   = Integer.parseInt( inputData );

    System.out.println( "Wie viele Sterne pro Zeile?" );
    inputData = userIn.readLine();
    anzahlSterne  = Integer.parseInt( inputData );

    zeile  =  1;
    while ( zeile <= anzahlZeilen )
    {
      stern = 1;
      while ( stern <= anzahlSterne )
      {
        System.out.print("*");
        stern = stern + 1;
      }

      System.out.println();         // notwendig, um jede Zeile zu beenden
      zeile = zeile + 1;
    }
  }
}

ja bin ich 😀
 
Dann machst irgendwas falsch kompilier nochmal, lösch die alte Klasse usw.
Denn bei mir geht der Code da auch perfekt:

Code:
Wie viele Zeilen?
7
Wie viele Sterne pro Zeile?
3
***
***
***
***
***
***
***
 

Neue Themen


Zurück
Oben