Methoden Eigene Methode um alle Ausgaben aufzurufen

domme5599

Mitglied
Guten Abend,

ich möchte in einem Währungsrechner nun eine eigene Methode schreiben, die mir alle Ergebnisse der Umrechnung ausgibt.
Die Ergebnisse sollen so ausgegeben werden, dass alle Währungen nacheinander angezeigt werden also erst 1, ..., 5 USD, 1, …, 5 GBP und 1, …, 5 CHF und nicht 1 USD 1 GBP und 1 CHF und so weiter.

Java:
public class Umrechnung4WSchleife {
   
    public static int ergebnis(int i) {
       
        double kurs = 0.86;      //USD in EUR Kurs 08.10.2018
        double kurs1 = 1.14;     //GBP in EUR Kurs 08.10.2018
        double kurs2 = 0.87;     //CHF in EUR Kurs 08.10.2018

                for(i=1; i<6; i++) {

                    ergebnis=i*kurs || kurs1 || kurs2;       
       
            public static void main(String[] args) {   
       
                System.out.println(i+"USD = "+(ergebnis)+" EUR");
                System.out.println(i+"GBP = "+(ergebnis)+" EUR");
                System.out.println(i+"CHF = "+(ergebnis)+" EUR");
       
            }
       
        }

    }

}


Ich weiß da ist noch viel falsch und die logischen AND Operatoren sind noch Platzhalter
 
Neuer Code

Java:
public class ergebnis {
   
    public static int ergebnis(int i) {
       
        double kurs = 0.86;      //USD in EUR Kurs 08.10.2018
        double kurs1 = 1.14;     //GBP in EUR Kurs 08.10.2018
        double kurs2 = 0.87;     //CHF in EUR Kurs 08.10.2018
        String USD;
        String GBP;
        String CHF;
        String EUR;
        double ergebnis1;
        double ergebnis2;
        double ergebnis3;

                for(i=1; i<6; i++) {

                    ergebnis1 = kurs*i;
                    ergebnis2 = kurs1*i;
                    ergebnis3 = kurs2*i;
           
                System.out.println(i+"USD = "+(ergebnis1)+" EUR");
                System.out.println(i+"GBP = "+(ergebnis2)+" EUR");

                System.out.println(i+"CHF = "+(ergebnis3)+" EUR");

                }

             }   
       
        }
 
Das sollte funktionieren.

Wenn ich mich recht entsinne, machst Du das im Zusammenhang mit der Schule. Daher muss ich mal nachfragen, ob Du
a) eigene Methoden,
b) Arrays,
c) eigene Klassen
verwenden darfst bzw. willst.

und die logischen AND Operatoren
Die || sind logische ORs, das AND wäre &&. Einfach zu merken: AND = Kaufmanns-UND.
 
Hey,

eigene Methoden und ich will für mich selber eine eigene Methode haben statt public static void main.
Und es ist aus dem Uni Kontext ich mach das nur gerade ausführlich.

Fehler beim Ausführen ich glaube er meckert über fehlende Klammer aber da fehlt eig. keine

ergebnis.java:30: error: missing return statement
}
^
1 error
 
Und es ist aus dem Uni Kontext ich mach das nur gerade ausführlich.
Oops. Ich dachte, es ging um Schule... War evtl. wer anders 🙂

Fehler beim Ausführen ich glaube er meckert über fehlende Klammer aber da fehlt eig. keine
Er meckert, weil Du die Methode mit Rückgabewert (int) deklariert hast, aber nichts zurück gibst. Ändere die Signatur auf ... void ergebnis(...) {.

Zum Rest schreibe ich noch was.
 
Die main-Methode braucht Java als Programmeinstiegspunkt. Das ist fix.

Wenn Du eigene Methoden verwenden darfst, könntest Du z. B. mal mit einer Umrechnungsmethode anfangen:
Java:
public static void umrechnung(String waehrung, double kurs, double betrag) {
    System.out.println(betrag + " " + waehrung + " = " + (betrag*kurs) + " EUR");
}
Das würde die Schleife wesentlich angenehmer gestalten:
Java:
for (int i = 1; i < 6; i++) {
    umrechnung("USD", kurs, i);
    umrechnung("GBP", kurs1, i);
    umrechnung("CHF", kurs2, i);
}
 
Ja eine die Schleife hatte ich ähnlich im Kopf danke.
Kann ich alle drei Ausgaben für USD GBP CHF nun unter die Umrechnungsmethode schreiben?

Java:
public class umrechnung {

    public static void umrechnung(String waehrung, double kurs, double betrag) {

            kurs = 0.87;                 //USD in EUR Kurs 08.10.2018
            double kurs1 = 1.14;    //GBP in EUR Kurs 08.10.2018
            double kurs2 = 0.88;   //CHF in EUR Kurs 08.10.2018

            for (int i = 1; i < 6; i++) {
                       
                    umrechnung("USD", kurs, i);
                    umrechnung("GBP", kurs1, i);
                    umrechnung("CHF", kurs2, i);

                }

            System.out.println(betrag + " " + waehrung + " = " + (betrag*kurs) + " EUR");
            System.out.println(betrag + " " + waehrung + " = " + (betrag*kurs1) + " EUR");
            System.out.println(betrag + " " + waehrung + " = " + (betrag*kurs2) + " EUR");

        }
   
    }
 
Sorry falls es irgendwie nervt, aber ich habe zwar Grundkenntnisse in theoretischer Informatik eigentlich ist meine Spezialität aber die Informationstechnik.
 
Okey dann bin überfragt?
Er kompiliert so richtig aber sagt nach ausführung folgendes

Error: Main method not found in class umrechnung, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Ist die Methode von mir falsch implementiert?

Java:
public class umrechnung {

        public static void umrechnung(String waehrung, double kurs, double betrag) {
       
            System.out.println(betrag + " " + waehrung + " = " + (betrag*kurs) + " EUR");


            kurs = 0.87;      //USD in EUR Kurs 08.10.2018
        double kurs1 = 1.14;    //GBP in EUR Kurs 08.10.2018
        double kurs2 = 0.88;   //CHF in EUR Kurs 08.10.2018

            for (int i = 1; i < 6; i++) {
                       
                    umrechnung("USD", kurs, i);
                        umrechnung("GBP", kurs1, i);
                        umrechnung("CHF", kurs2, i);

                    }

                }

            }
 
Ist die Methode von mir falsch implementiert?
Ja, das habe ich ganz übersehen.

Und noch was: Du willst die Ausgabe ja anders haben. Das ist aber kein Problem.

Mal komplett:
Java:
public class Umrechnung {
     public static void main(String[] args) {
         double usdKurs = 0.87;
         double gbpKurs = 1.14;
         double chfKurs = 0.88;
         umrechnen("USD", usdKurs);
         umrechnen("GBP", gbpKurs);
         umrechnen("CHF", chfKurs);
    }

    static void umrechnen(String waehrung, double kurs) {
        for (int i = 1; i < 6; i++) {
            double ergebnis = i * kurs;
            System.out.println(i + " " + waehrung + " = " + ergebnis + " EUR");
        }
    }
}
So macht das eher Sinn 🙂
 
Ja das macht Sinn. Ich hab mich schon gewundert, weil ich weiß eig. das main zuerst kommt aber danke.
So ich danke für die professionelle Hilfe beim Programmieren abseits der Uni 🙂
 
das main zuerst kommt aber danke.
Du gibst Java beim Aufruf Deines Programms nur eine Klasse mit, z. B. java -cp . Umrechnung. Jetzt kann diese Klasse ja u. U. viele Methoden enthalten.

Woher soll Java wissen, mit welcher Methode gestartet werden soll? Aus diesem Grund gibt es die main-Methode. Die ist für Java soz. der Startpunkt.

Falls Du auf die Reihenfolge im Quellcode angespielt haben solltest: das ist völlig egal, ob die main-Methode nun am Anfang oder am Ende der Klasse steht, auch zwischendrin wäre möglich.
 

Zurück
Oben