if Statement

ellegance

Mitglied
Implementieren Sie die Methode max der Klasse Helferlein im vorgegebenen Code-Gerüst.
Die Methode max gibt die Größere der beiden natürlichen Zahlen a und b zurück.

Implementieren Sie die Methode max der Klasse Helferlein. Für die Berechnung werden über den Aufruf in der Main-Methode die beiden Werte a=12 und b=43 vorgegeben.
Es soll keine Eingabe der beiden Werte über die Tastatur erfolgen!
Java:
import java.io.*;

class Helferlein {
  public int max (int a, int b) {
    int m = a, n = b, g;
    if ( m < n) {
      g = m;
      m = n;
      n = g;
    }
    return m; //m ist die groessere Zahl und wird zurueckgegeben
  }
}

public class Starter {
  public static void main(String[] args) {
    Helferlein h = new Helferlein();
    System.out.println("Ausgabe: "+h.max(12,43));
  }
}
Hallo, ich habe mal eine Frage zu diesem Code. was wird in der if schleife gemacht?

m=a und n=b also m die größere Zahl und n die kleinere? wenn die größere Zahl kleiner ist als die kleinere dann? aber das geht doch schon mal nicht? :S habe ich dort ein denkfehler? Ich verstehe nicht warum man alle Variablen miteinander gleichsetzt. Übrigens, das ist die Musterlösung zu der Aufgabe.

LG
 
Zuletzt bearbeitet von einem Moderator:

stg

Top Contributor
Geh das doch mal Schritt für Schritt mit Papier und Stift durch, dann siehst du recht schnell, was genau da passiert. Da wird nicht einfach "alles gleichgesetzt".
 

Flown

Administrator
Mitarbeiter
Das "=" heißt nicht das links und rechts gleich gesetzt wird, sondern es bedeutet das die rechte Seite der Linken zugeordnet wird. Des Weiteren gibt es keine "if-Schleife", sondern nur eine if-Anweisung.

Zeig doch mal die Aufgabenstellung her, denn das ist eine schlechte "Lösung".
 

ellegance

Mitglied
Hallo. Danke für die Antworten die Aufgabenstellung steht ja oben drauf. Im Gerüst war alles vorgegeben nur die if Anweisung nicht. Ich schaue es mir heute abend noch genauer an. Eine Frage ist mir gerade eingefallen, was ist eigentlich dieses g? a und b bzw m und n sind integers und g?

LG
 

Tom299

Bekanntes Mitglied
Eine einfache und verständliche Lösung wäre:
Java:
      public int max (int a, int b) {
          if (a > b) {
              return a;
          }
          return b;
      }

oder ohne if-statement:
Java:
      public int max2(int a, int b) {
          return a > b ? a : b;
      }

Deine Musterlösung scheint eher zum Verwirren gedacht zu sein, man braucht nicht mal einen Wert zwischenzuspeichern, um das Maximum herauszufinden.
 

VfL_Freak

Top Contributor
Moin,

Eine einfache und verständliche Lösung wäre:
Java:
      public int max (int a, int b) {
          if (a > b) {
              return a;
          }
          return b;
      }

oder ohne if-statement:
Java:
      public int max2(int a, int b) {
          return a > b ? a : b;
      }

Deine Musterlösung scheint eher zum Verwirren gedacht zu sein, man braucht nicht mal einen Wert zwischenzuspeichern, um das Maximum herauszufinden.
Deine aber leider auch - was ist denn wenn a und b gleich sind ?? :rolleyes:

Gruß Klaus
 

Neue Themen


Oben