Methode verkleinern

JavaAnfänger1235

Bekanntes Mitglied
Hallo, passend zur Weihnachtszeit, habe ich folgende Methode gegeben:

Diese muss ich verkleinern, indem ich Arrays oder Schleifen usw. benutze.
Kann mir einen Tipp geben, wo ich was verkleinern könnte.

Code:
public Backwaren  plaetzchenBacken(Ofen  backofen) {
int portionen = 1;
System.out.println("Wie  viele  Portionen?");
Scanner  eingabe = new Scanner(System.in);
portionen = eingabe.nextInt ();
eingabe.close();
if (portionen  < 0) {
portionen = Math.abs(portionen);
}
float mehl = 500f;
float zucker = 250f;
float vanilleZucker = 1f;
float butter = 250f;
float eier = 2f;
float backpulver = 0.5f;

mehl = mehl * (float)portionen;
zucker = zucker * (float) portionen;
vanilleZucker = vanilleZucker * (float) portionen;
butter = butter * (float) portionen;
eier = eier * (float)portionen;
backpulver = backpulver * (float) portionen;

float teig = 0;

teig = teig + mehl;
teig = teig + zucker;
teig = teig + vanilleZucker;
teig = teig + butter;
teig = teig + eier;
teig = teig + backpulver;

//  public  float  verkneten(float  teig);
float verkneteterTeig = verkneten(teig);
Backwaren  plaetzchen = new Backwaren ();


//  public  Backwaren  ausstechen(float  teig);
plaetzchen = ausstechen(verkneteterTeig);

while(true) {
if(plaetzchen.farbe () != "goldgelb") {
//  public  void  backen(Backwaren  plaetzchen , float  zeitInMinuten);
backofen.backen(plaetzchen ,0.0000000001f);
}
else{
break; }
}
System.out.println("Erfolgreich  Plaetzchen gebacken!");
return plaetzchen;
}
 
Wenn du die Backzutaten in eine passende Datenstruktur packst,
float mehl = 500f;
float zucker = 250f;
float vanilleZucker = 1f;
float butter = 250f;
float eier = 2f;
float backpulver = 0.5f;

kannst du bspw. den Teil auch mit einer Schleife erledigen.

teig = teig + mehl;
teig = teig + zucker;
teig = teig + vanilleZucker;
teig = teig + butter;
teig = teig + eier;
teig = teig + backpulver;

Nur mal so als ein kleiner Denkanstoß 🙂
 
Java:
public Backwaren  plaetzchenBacken(Ofen  backofen) {
   System.out.println("Wie  viele  Portionen?");
   int portionen =  Math.abs(new Scanner(System.in).nextInt ());

   float[] zutaten = {500f, 250f, 1f, 250f, 2f, 0.5f};
   float teig = 0;
   for(float zutat: zutaten) {
      teig += zutat * portionen;
   }

   Backwaren  plaetzchen = ausstechen(verkneten(teig));
   while(plaetzchen.farbe () != "goldgelb")) {
      backofen.backen(plaetzchen ,0.0000000001f);
   }

   System.out.println("Erfolgreich  Plaetzchen gebacken!");
   return plaetzchen;
}
 
Aber nur wenn du das auch brauchst. Denn bisher mixt du ja einfach alle Zutaten zusammen. Da musst du nicht zwischen Mehl und Zucker unterscheiden. Insofern ist das was @tommysenf dir gepostet hat die genaue Umsetzung deiner ursprünglichen Methode.
 
Code:
//  public  float  verkneten(float  teig);
float verkneteterTeig = verkneten(teig);
Backwaren  plaetzchen = new Backwaren ();
//  public  Backwaren  ausstechen(float  teig);
plaetzchen = ausstechen(verkneteterTeig);

Das wurde anscheinden so gekürzt: Backwaren plaetzchen = ausstechen(verkneten(teig));
Dabei wird wie ich es denke die Methode austechen aufgerufen. Diese erwartet als Eingabe den Wert von verkneteterTeig. Dieser kommt aus der Methode verkneten(teig). D.h man kann die Methoden ineinander verschachteln.
Warum brauche ich dann diese Zeile nicht mehr oder überhaupt: Backwaren plaetzchen = new Backwaren ();
Es wird ja ein Objekt der Klasse Backwaren erstellt. Was bringt mir das.
 
Warum brauche ich dann diese Zeile nicht mehr oder überhaupt: Backwaren plaetzchen = new Backwaren ();
Es wird ja ein Objekt der Klasse Backwaren erstellt. Was bringt mir das.
Die hättest du schon vorher nicht benötigt.
Java:
Backwaren  plaetzchen = new Backwaren (); // erzeugt eine Instanz von Backwaren

// das Ergebnis von ausstechen() wird der Variablen plaetzchen zugewiesen. 
// Damit wird die vorher erzeugte Instanz überschrieben.
// Demnach hätte man sie gar nicht erzeugen müssen.
plaetzchen = ausstechen(verkneteterTeig);

// Dies ist gleichwertig:
Backwaren plaetzchen = ausstechen(verkneteterTeig); // Variable plaetzchen deklarieren und einen Wert zuweisen.
 

Neue Themen


Zurück
Oben