Java System.out.println (.....)

123michi19

Lt. Junior Grade
Registriert
Okt. 2014
Beiträge
294
Hi Leute,

ich habe jetzt am Anfang echt noch richtige Schwierigkeiten beim Programmieren und würde Eure Hilfe brauchen.

Wenn ich mein Programm schreibe, dann geht es ja folgendermaßen los:

/*Muenzen.java*/
pbulic class Muenzen
{
public static void main (String[]args)
{
int x = 500; //Betrag
int y = 200; // Münzwert

quote (x / y)
rest (x % y)

System.out.println (...............)


Mein Problem, ich weiß immer nicht, wie die Befehle in der Klammer lauten müssen? Habe ich da in der Vorlesung irgendetwas nicht mitbekommen. Es müssen auf jeden Fall (" "), aber dann sind mal wieder + Zeichen dabei, usw.


Vielen Dank für Eure Antworten.
 
in die klammern kommt hier die ausgabe, das kann beispielsweise ein string sein, welcher immer in " gekapselt ist oder eine variable,, deren inhalt ausgegeben werden soll
das + zeichen verwendest du bei ausgaben, wenn etwas verketten möchtest

bsp:

"result: " + sResult
 
Zuletzt bearbeitet:
Also in den Klammewrn sind erstmal keine befehle sondern Parameter.
Diese Parameter sind je anch Methode unterschiedlich.
Eine Methode die zwei Zahlen addiert will zwei Integer z.B.
Eine Methode die dich begrüßt will deinen Name einen String.

Beispiel Addieren
Code:
public int Add(int zahl1, int zahl2)
{
  return zahl1 + zahl2;
}


Beispiel Hallo
Code:
public String Hallo(String name)
{
  return "Hallo " + name;
}
 
Zuletzt bearbeitet:
System.out.println(" Die Quote beträgt: " +quote +"\nDer Rest beträgt: " +rest);

So müsste du die Quote und den Rest ausgeben können.
Das was zwischen den Anführungsstrichen steht wird ausgegeben und mit dem +operator kannst du mehrere String oder variablen ausgeben, wie z.B. +quote dort wird dann einfach der Wert der Variable ausgegeben.

Ich hoffe es ist verständlich :D
Ergänzung ()

@J4CK50N Du musst den Rückgabewert der Methode Hallo als String definieren oder nicht ? :D du gibst ja bei dir ein String zurück aber der Rückgabewert ist als int definiert
 
Zuletzt bearbeitet:
an sich wurde hier es ja bereits erklärt.

Aber da du studierst würde ich die transferleistung erwarten Google zu öffnen und "Java first steps" oder "Java tutorial" einzutippen - oder vielleicht ein buch zu kaufen "Java for beginners" dort wird idR mit solchen (simplen) Sachen angefangen.
gerade auch das wording was Jackson meint ist dort sehr gut beschrieben.
habt ihr den keine Folien/skripte zur Vorlesung?

ein gutes lern&nachschlagewerk ist: http://openbook.galileocomputing.de/javainsel/
 
@RobimHood.

Habs auch gerade gesehen. Copy&Paste halt :D
 
Super, ihr seit echt klasse. Noch als zweite Frage: Angenommen mein Programm hätte jetzt zusätzlich zu x und y noch ein z. Wie würde ich es dann schaffen, dass der Restwert durch z geteilt wird?

Also natürlich erst einmal z deklarieren.
int z
z = 2

quot (.... / z)
{
System.out.println ("Das Ergebnis zwischen dem Rest und z lautet" + quote)

???
Ergänzung ()

Ich habe 4 Bücher vor mir liegen, allerdings finde ich keinen Abschnitt zu diesem Thema.
 
Das mit abstand beste Java Tutorial, das ich als blutiger programmieranfänger gefunden habe: http://www.gailer-net.de/tutorials/java/java-toc.html

Ansonsten hat tsukabaru schon alles gesagt.

Konkret könnte das so aussehen:

System.out.println ( "Betrag: " + x + y) (ist zwar an sich nonsens, aber zeigt wie die syntax funktioniert)

Sprich, alles was zwischen " " ist wird so ausgegeben, wie es dasteht. Mit dem + sagst du nur, dass du noch mehr ausgeben möchtest, z.B. den Wert einer Variable oder ein weiterer String.. Das + ist also in diesem Fall kein "Mathematisches" Plus.



@J4CK50N

Sorry, ist zwar richtig, verwirrt aber gerade als anfänger. Warum zeigst du ihm direkt eine Methode, die überhaupt nichts mit dem ausganspost zu tun hat? Er will doch nur die Syntax von in seinem Fall "SYSO" verstehen und nichts weiter. Solche antworten wie die von dir haben mich als anfänger immer zur weißglut gebracht. Es setzt nämlich voraus, dass man grob versteht, wie Java aufgebaut ist. Dies ist aber als anfänger der gerade die ersten Schritte macht nicht gegeben.




Nachschlagewerk ja. Geeignet für Programmieranfänger ohne jegliche Programmiererfahrung? NEIN! Verstehe nicht, warum dieses Buch so oft Anfängern empfohlen wird. Absolut unbrauchbar zur Einführung in die Programmierung.
 
Zuletzt bearbeitet von einem Moderator:
Du brauchst noch eine temporäre variable wo du den Rest speicherst.
 
Vielen Dank für den Link. Für mich als Anfänger sehr geeignet (und die ersten Programmierschritte sind wirklich verdammt hart :-)
 
@Laggy
Weil er nicht einmal weiss, was Parameter sind und wozu Sie gut sind.
Und ich denke mit den Beispielen kann man gut verstehen was Parameter sind und was sie tun.

Solche Erklärungen sind 1000mal besser für einem Anfänger, als ihm alles vorzukauen.

Man kann denHund ja nicht zum Jagen tragen.

PS: ich habe Erfahrungen mit Anfängern und weiss wie man Sie selbst zum Denken bringt ;)
 
Dann wäre es:

quote (.... / z);
rest (.... % z);
{
System.out.println ("Das Ergebnis zwischen dem Rest und z lautet" + quote);
System.out.println ("Der Rest lautet:" + rest);
}
 
Zuletzt bearbeitet:
@Michi
Schreibe mal den kompletten Code in einen Codeblock.
Hier ist nicht ersichtlich ob du Fields benutzt oder Methoden oder was auch immer.

Ich blick den Code nicht.
 
mit prinln gibts du einen langen String aus.
Alles was zwischen " " ist ein String - willst du 2 Strings verknüpfen brauchst du +
String = String1 + String2

Java wandelt int z.B. automatisch in String um, wenn du + verwendest.

System.out.println(" Die Quote beträgt: " +quote +"\nDer Rest beträgt: " +rest);
interpretiert Java als:
System.out.println(" Die Quote beträgt: " +quote.ToString() +"\nDer Rest beträgt: " +rest.ToString());

System.out.println ("Das Ergebnis zwischen dem Rest und z lautet" + quote);

Das ist nicht richtig da z hier von " " umschlossen wird und somit wird z als String zurückgegeben und nicht die Variable die in z steht:

Richtig:
"Das Ergebnis zwischen dem Rest und " + z +" lautet " + quote
 
Zuletzt bearbeitet:
Hier einmal die komplette Aufgabenstellung:

Entwickeln Sie für einen Automaten ein Programm, das eine optimale Münzrückgabe berechnet. Ziel ist es, den Geldrückgabebetrag aus möglichst wenig Münzen bestehen zu lassen. Rückgabebeträge, die über 5 Euro liegen, werden teilweise in Scheinen zurückgegeben, so dass wir hier nur Beträge unter 5 Euro betrachten müssen. Ziel der Berechnung ist es also, einen beliebigen Betrag (der kleiner ist als 5 Euro) so zu zerlegen, dass er aus möglichst wenig Münzen besteht. Ihr Programm soll ausgeben, welche Münze Sie wie oft benötigen.

(Es dürfen keine if, else, Anweisungen verwendet werden).

Mein Code - Vorschlag:

/*Muenzen.java*/
public class Muenzen
{
public static void main (String[]args)
int x;
x = 500; //5 Euro in Cent umgerechnet, um mit ganzen Zahlen arbeiten zu können
int y;
y = 200; //Stehen für die 2 Euro
int z;
z = 100 // 1 Euro

division (x / y);
rest (x % y);
{
System.out.println ("Der Wert fuer 2 Euro - Stuecke betraegt" + division);
System.out.println ("Der Rest lautet:" + rest);
}
}

division (rest / z);
rest (rest % z);
{
System.out.println ("Der Wert fuer 1 Euro - Stuecke betraegt:" + division);
System.out.println ("Der Rest lautet:" + rest);




So hätte ich dies dann fortgeführt für die restlichen Münzen?
 
kleiner Tipp - benenne deine variablen in einer sprache die du verstehst wenn du mit ihnen arbeitest....dann ersparst Du dir unnötige kommentare....

betrag = ..... statt x = .... //betrag
muenzwert = .... statt y = ...... //münzwert


zu dem erwähnten buch - es damit kann man auch lernen habe es aber absichtlich auch als nachschlagewerk vorgeschlagen.
das kapitel : http://openbook.galileocomputing.de...tml#dodtpa64f286a-2280-4789-b0f7-5a48ad1ca82d
würde ihm bei dem thema sofort weiterhelfen....
außerdem habe ich auch noch gesagt wonach er googlen will - falls er nur mal kurz programmieren will ohne etwas zu wissen...
 
Sorry Leute, ich bin's wieder. Komme einfach nicht weiter.

Ich möchte, dass mein c von Zeile 14 in die Zeilen ab 23 übernommen wird. Wie schaffe ich das?


/*Muenzen.java*/
public class Muenzen
{
public static void main (String[]args)
{
int a, b, c;
a = 500; //Eingabewert
b = 200; // 2 Euro - Stuecke
c = (a % b);


int quot, rest;
quot = (a / b);
c = (a % b);

System.out.println ("Anzahl der 2 Euro Stuecke: " + quot);
System.out.println ("Restbetrag: " + c);
}
}


{
int c, d, e;

c = (a % b);
d = 100; //1 Euro - Stuecke
e = (c / d);

int division, restwert;
division = (c / d);
restwert = (d % e);

{System.out.println (" ... " + division);
{System.out.println (" ... " + restwert);
}
}
}
 
Sieht ziemlich unformatiert aus, was es ziemlich unübersichtlich macht. In Eclipse beispielsweise kannst du deinen Code mittels Tastenkombination [Shift] + [Ctrl] + [F] automatisch formatieren lassen. Weiter würde es helfen, wenn du dann deinen Code in einen Code-Tag schreibst.
[.Code]...Dein Code...[./Code] (ohne Punkte natürlich)

Für mich sieht es nach zu vielen geschweiften Klammern aus...

Um deine Frage noch zu beantworten. Mach mal zwischen

Code:
public class Muenzen {

    private int c = 0; // hier deine Variable c neu initialisieren.

    public static void main(String[] args) {

        int a, b;   // Hier die Variable c dafür rausnehmen.

        a = 500;    // Eingabewert
        b = 200;    // 2 Euro - Stuecke
        c = (a % b);

        int quot, rest;
        quot = (a / b);
        c = (a % b);

        System.out.println("Anzahl der 2 Euro Stuecke: " + quot);
        System.out.println("Restbetrag: " + c);
        [.... dein restlicher Code .....]
    }
}

Ist der Rest:

Code:
{        
        int c, d, e;


        c = (a % b);
        d = 100; // 1 Euro - Stuecke
        e = (c / d);


        int division, restwert;
        division = (c / d);
        restwert = (d % e);


        {
            System.out.println(" ... " + division);
            {
                System.out.println(" ... " + restwert);
            }
        }
    }

​eine Methode oder was ist das? Wenn es eine Methode ist, dann darfst du hier die Variable c ebenfalls nicht neu zuweisen (int c, in der zweiten Zeile vom 2. Code Block). Alternativ, was besser wäre, könntest du die C Variable als Parameter übergeben.

Quasi so:

Code:
private void nameDerMethode(int c) {
    int d, e;

        c = (a % b);
        d = 100; // 1 Euro - Stuecke
        e = (c / d);

        int division, restwert;
        division = (c / d);
        restwert = (d % e);
// Hier sind zu viele Klammern ....
        {
            System.out.println(" ... " + division);
            {
                System.out.println(" ... " + restwert);
        }
    }
}
 
Zuletzt bearbeitet:
Vielen Dank für deine Antwort. Das Problem ist, dass wir kein Eclipse verwenden dürfen. Bis Ende des 1. Semesters muss alles auf Proton geschrieben werden :-(
 
Sei's drum. Wenn du die Zeilen manuell einrückst, macht es die Sache sehr viel übersichtlicher. Musst ja nicht 4 Spaces für einen Einzug nehmen, zwei Spaces können auch schon reichen. :D
 
Zurück
Oben