Methode aufrufen

scratchy1

Bekanntes Mitglied
Aber das soll sie doch, sie soll 100-mal aufgerufen werden, wie soll ich denn sonst das Maximum herauskriegen?
Jetzt habe ich glaube ich auch die Zahl gefunden: Die Zahl, bei der am meisten Schritte ausgeführt werden bis wir eine sich wiederholende Sequenz erhalten, ist 97 mit 118 Schritten. Ich vergleich jetzt nicht mehr immer mit dem Nachfolger, sondern mit dem bisherigen Maximum:
Java:
public class wundersam {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int max = 0;
        for (int s = 1; s <= 100; s = s + 1) {

            if (wundersamTest.wunder(s) > max) {
                max = wundersamTest.wunder(s);
                System.out.println(max + "maximale Schritte bei" + s);
            }

        }
    }
}
Die Ausgabe ist 118 maximale Schritte bei 97 und (komischerweise) 115 maximale Schritte bei 73,
obwohl 115<118. hmm
 

Robat

Top Contributor
Wir kürzen das ganze einfach mal ab. Was wir meinen ist sowas hier. So vermeidest du den doppelten Aufruf in *einer* Iteration
Java:
public class wundersam {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int max = 0;
        for (int s = 1; s <= 100; s = s + 1) {
            int current =wundersamTest.wunder(s);
            if (current > max) {
                max = current;
                System.out.println(max + "maximale Schritte bei" + s);
            }

        }
    }
}
 

mihe7

Top Contributor
Aber das soll sie doch, sie soll 100-mal aufgerufen werden, wie soll ich denn sonst das Maximum herauskriegen?
Genau, sie soll 100-mal aufgerufen werden aber nicht z. B. 200-mal. Aktuell rufst Du wundersam(s) einmal in der if-Bedingung und einmal im then-Zweig auf.

EDIT: @Robat, hast Du hier irgendwie eine Kamera bei mir? Kaum schreib ich ihm, antwortest Du auch :)

@scratchy1 verstehst Du den Unterschied zwischen Deiner Lösung und der von @Robat?
 

scratchy1

Bekanntes Mitglied
Hallo Leute,
ja ich hab das so verstanden, wie Dus(Robat) im Code geschrieben hast. Also der Unterschied ist, dass ich es dann nur einmal aufrufen würde und in meinem Fall öfter. Da das Ergebnis aber das gleiche ist, frag ich mich aus welchem Grunde ich es möglichst wenig aufrufen soll (aus Gründen der Komplexität/Aufwand/Ästhetik etwa) ?
 

scratchy1

Bekanntes Mitglied
Ach ok, deswegen, vielen Dank, ich werd das dann nachholen:
Java:
public class wundersam {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int max = 0;
        for (int s = 1; s <= 100; s = s + 1) {
            int schritte = wundersamTest.wunder(s);
            if (schritte > max) {
                max = schritte;
                System.out.println(max + "maximale Schritte bei" + s);
            }

        }
    }
}
 

mihe7

Top Contributor
Genau, wenn Du Deinen Quellcode jetzt liest, dann hat der Code wesentlich größere Aussagekraft. Die Intention des Codes ist wesentlich klarer, weil man relativ schnell erkennt, dass es darum geht, das Maximum einer Schrittzahl zu ermitteln.

Wenn Du Deine alte Variante zum Vergleich ansiehst:
Code:
          if (wundersamTest.wunder(s) <= wundersamTest.wunder(s + 1)) {
                max = wundersamTest.wunder(s + 1);
            } else {
                max = wundersamTest.wunder(s);
            }
Da musst Du erstmal überlegen, was hier passiert. Problem 1: Du siehst in dem Stück Code nicht, was wundersamTest.wunder(s) zurückgibt. Da könnte genauso gut f(s) stehen. Problem 2: im Code steht "wenn f(s) <= f(s+1) ist, dann setze max auf f(s+1) sonst auf f(s)". Da musst Du erstmal das Überlegen anfangen, was das eigentlich zu bedeuten hat:
Code:
f(0) = 1
f(1) = 100
f(2) = 2
f(3) = 3
D. h. bei s=2 gilt f(2) <= f(3), dann wird max auf f(3) = 3 gesetzt. Das ist aber irgendwie kein Maximum (bzw. ein äußerst lokales :))

Kurz: so etwas schlechter Code; nicht, weil er falsch ist, sondern weil die Intention nicht ersichtlich ist.

Zum Vergleich:
Java:
            int schritte = wundersamTest.wunder(s);
            if (schritte > max) {
                max = schritte;
            }
Aha, es werden schritte gerechnet und das Maximum ermittelt. Damit ist sofort alles klar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
V Collections Methode in der Methode aufrufen Java Basics - Anfänger-Themen 2
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
W Wie kann ich meine Methode aufrufen? Java Basics - Anfänger-Themen 29
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
C Methoden Methode Variabel aufrufen Java Basics - Anfänger-Themen 2
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
K Compiler-Fehler Objektmethode aus einer statischen Methode heraus aufrufen Java Basics - Anfänger-Themen 34
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
S Methoden Methode einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 5
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
W Methoden Methode auf Array aufrufen, und dieses Array dabei ändern? Java Basics - Anfänger-Themen 10
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
Q Methode eines bereits erzeugten Objekts von einem anderen Objekt aus aufrufen Java Basics - Anfänger-Themen 6
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
F Um 14:00 eine Methode aufrufen Java Basics - Anfänger-Themen 5
B Methoden Array Methode aufrufen Java Basics - Anfänger-Themen 4
O Klasse übergeben und Methode aufrufen Java Basics - Anfänger-Themen 6
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
M Warum soll man die Finanlize Methode nicht überschreiben und aufrufen? Java Basics - Anfänger-Themen 2
P Methoden Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 4
M Möglich? Methode aufrufen deren Bezeichner zur Laufzeit durch einen überg. String festgelegt wird Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
Mr. Pink Graphics2D in anderer Methode aufrufen Java Basics - Anfänger-Themen 6
P Methode außerhalb der Klasse aufrufen Java Basics - Anfänger-Themen 10
J Methode vor Ausführung einer vorhandenen Methode aufrufen Java Basics - Anfänger-Themen 5
M Methode aus einer Klasse aufrufen Java Basics - Anfänger-Themen 6
J Vererbung Überschriebene toString-Methode aufrufen Java Basics - Anfänger-Themen 10
A Nicht-statische Methode in einer statischen aufrufen Java Basics - Anfänger-Themen 10
A Methode aus verschiedenen Klassen aufrufen Java Basics - Anfänger-Themen 8
N Methode draw(Graphics g) aufrufen Java Basics - Anfänger-Themen 6
V Mit JS eine JAVA Methode aufrufen Java Basics - Anfänger-Themen 5
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
M Methode einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 7
N Aufrufen einer Methode mit unterschiedlichen Basistypen Java Basics - Anfänger-Themen 22
D Methoden Methode über andere Klasse aufrufen Java Basics - Anfänger-Themen 7
B Methoden Methode lässt sich nicht selbst aufrufen? Java Basics - Anfänger-Themen 3
O OOP prindata Methode aufrufen!? Methode drucken + Konstruktor Java Basics - Anfänger-Themen 9
E Methoden Variable aus einer anderen Methode in einer Methode aufrufen Java Basics - Anfänger-Themen 7
H Methode aufrufen beim Drücken eines Buttons im Boxlayout Java Basics - Anfänger-Themen 6
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
M Methoden Methode als String übergeben, dann aufrufen? Java Basics - Anfänger-Themen 13
I Methode enes Objektes A in Objekt B aufrufen Java Basics - Anfänger-Themen 4
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
M OOP ActionPerformed Methode aus anderer AP aufrufen? Java Basics - Anfänger-Themen 5
M Main methode innerhalb von Java aufrufen Java Basics - Anfänger-Themen 11
D Methode anhand deren Name aufrufen Java Basics - Anfänger-Themen 4
D Methode in Schwesterklasse aufrufen Java Basics - Anfänger-Themen 12
H Methode aufrufen Java Basics - Anfänger-Themen 5
Luk10 aufrufen einer Methode Java Basics - Anfänger-Themen 9
L Methode über for-schleife aufrufen und verändern Java Basics - Anfänger-Themen 7
L Methode über for-schleife aufrufen und verändern Java Basics - Anfänger-Themen 5
H Methode aus anderer Datei aufrufen Java Basics - Anfänger-Themen 11
N methode im Konstruktor aufrufen Java Basics - Anfänger-Themen 4
TheKing Paint-Methode aufrufen Java Basics - Anfänger-Themen 14
B Eine Methode für alle Subklassen aufrufen? Java Basics - Anfänger-Themen 8
Shaun Methode der Klasse 1 in Klasse 2 aufrufen Java Basics - Anfänger-Themen 2
B Methode aufrufen 2Dim Array Java Basics - Anfänger-Themen 3
T Methode einer fremden Klasse aufrufen - wie? Java Basics - Anfänger-Themen 2
D Methode in einer anderen Methode (gleiche Klassse) aufrufen Java Basics - Anfänger-Themen 11
K methode aufrufen Java Basics - Anfänger-Themen 8
T Aufrufen von get-Methode aus anderer Klasse (absolute Anfängerfrage) Java Basics - Anfänger-Themen 2
S Klasse übergeben und Methode aufrufen? Java Basics - Anfänger-Themen 2
E Mit Taste Methode aufrufen Java Basics - Anfänger-Themen 7
Z Verdeckte Methode aufrufen Java Basics - Anfänger-Themen 7
D Variable einer Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 19
B super methode aufrufen und ergänzen? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben