Größter gemeinsamer Teiler

Lestas89

Bekanntes Mitglied
Wenn ich das Programm starte, wird die Ausgabe unten "Größter gemeinsamer Teiler ist" nicht ausgeführt.

Wo liegt mein Fehler?

Java:
import javax.swing.JOptionPane;

class Programm{
   public static void main(String[]args){
   String eingabe1, eingabe2, ausgabe;
   int zahl1, zahl2, hilf;
  
   eingabe1 = JOptionPane.showInputDialog("Geben Sie eine ganze positive Zahl ein:");
   eingabe2 = JOptionPane.showInputDialog("Geben Sie eine zweite ganze positive Zahl ein");
  
   zahl1 = Integer.parseInt(eingabe1);
   zahl2 = Integer.parseInt(eingabe2);
  
   if(zahl1 <= 0 || zahl2 <= 0){
   JOptionPane.showMessageDialog(null,"Die Zahlen müssen positiv sein!");
   }System.exit(0);
  
   while(zahl2 > 0){
     hilf = zahl1;
     zahl1 = zahl2;
     zahl2 = hilf;
     zahl2 = zahl2 % zahl1;
    
    
   }
  
   JOptionPane.showMessageDialog(null,"Größter gemeinsamer Teiler ist" + zahl1);
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Lestas89

Bekanntes Mitglied
Habe meinen Fehler gefunden. Der Code lautet wie folgt:

Java:
import javax.swing.JOptionPane;

class Programm{
   public static void main(String[]args){
   String eingabe1, eingabe2, ausgabe;
   int zahl1, zahl2, hilf;
 
   eingabe1 = JOptionPane.showInputDialog("Geben Sie eine ganze positive Zahl ein:");
   eingabe2 = JOptionPane.showInputDialog("Geben Sie eine zweite ganze positive Zahl ein");
 
   zahl1 = Integer.parseInt(eingabe1);
   zahl2 = Integer.parseInt(eingabe2);
 
 
   while(zahl2 > 0){
     hilf = zahl1;
     zahl1 = zahl2;
     zahl2 = hilf;
     zahl2 = zahl2 % zahl1;
   
     }
   JOptionPane.showMessageDialog(null,"Größter gemeinsamer Teiler ist " +  zahl1);
 
   }
}

Wie kann ich nun reinbringen, dass auch negative Zahlen berücksichtigt werden?
 
Zuletzt bearbeitet von einem Moderator:

Tarrew

Top Contributor
Der Fehler lag ürbigens darin, dass das "System.exit(0);" außerhalb der Klammer war. Schreib das innerhalb der if-Bedingung und es sollte passen.
 

strußi

Top Contributor
du kannst mittels if-Anweisungen schauen welche zahl größer ist und damit deine Ausgabe füttern. Dann kannst du alle zahlen akzeptieren
if( z1 < z2){

} else if( z1 == z2){
} else{ z1 ist größte zahl}
 

Lestas89

Bekanntes Mitglied
Ich habe das Programm nun erweitert und bekomme den folgenden Fehler zu den Methoden "Identifier expected". Was genau heißt das?

Java:
public class Programm{
   public static int ggT(int m, n){
    
     if(m < 0 || n < 0){
     return -1;
     }
     int hilf;
     while(n > 0){
    
     hilf = m;
     m = n;
     n = hilf;
     n = n % m;
    
    
    
     }
     return m;
    
   }
  
   public static int Durchschnitt(int m, n){
     return (m+n)/2.;
   }
  
   public static void main(String[]args){
    
     int zahl1 = Integer.parseInt(args[1]);
     int zahl2 = Integer.parseInt(args[2]);
    
     if(args[0].equals("Durchschnitt")){
     System.out.println("Der Durchschnitt von"+args[1]+"und"+args[2] + "ist" + Durchschnitt(zahl1, zahl2));
     }
     else if(args[0].equals("ggT"){
     int teiler = ggT(zahl1,zahl2);
     if(teiler == -1)
     System.out.println("Es kann kein Teiler berechnet werden, die Zahlen müssen positiv sein.");
     }
     else{
     System.out.println("Der größte gemeinsame Teiler von"+zahl1+ "und"+zahl2+ "ist"+ teiler);
     }
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Lestas89

Bekanntes Mitglied
Habe meine Fehler gefunden. Allerdings will er mir den größten gemeinsamen Teiler nicht ausgeben wenn ich das Programm mit java Programm "ggT" 30 10 starte.

Der neue Code:
Java:
public class Programm{
   public static int ggT(int m, int n){
    
     if(m < 0 || n < 0){
     return -1;
     }
     int hilf;
     while(n > 0){
    
     hilf = m;
     m = n;
     n = hilf;
     n = n % m;
    
    
    
     }
     return m;
    
   }
  
   public static double Durchschnitt(double m, double n){
     return (m+n)/2.;
   }
  
   public static void main(String[]args){
    
     int zahl1 = Integer.parseInt(args[1]);
     int zahl2 = Integer.parseInt(args[2]);
    
     if(args[0].equals("Durchschnitt")){
     System.out.println("Der Durchschnitt von"+args[1]+"und"+args[2] + "ist" + Durchschnitt(zahl1, zahl2));
     }
     else if(args[0].equals("ggT")){
     int teiler = ggT(zahl1,zahl2);
     if(teiler == -1)
     System.out.println("Es kann kein Teiler berechnet werden, die Zahlen müssen positiv sein.");
     }
     else{
     System.out.println("Der größte gemeinsame Teiler von " +zahl1+ " und "+zahl2+ " ist "+ ggT(zahl1,zahl2));
     }
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Tarrew

Top Contributor
Du hast die Klammern falsch gesetzt:
Java:
public class Programm {
    public static int ggT(int m, int n) {

        if (m < 0 || n < 0) {
            return -1;
        }
        int hilf;
        while (n > 0) {

            hilf = m;
            m = n;
            n = hilf;
            n = n % m;

        }
        return m;

    }

    public static double Durchschnitt(double m, double n) {
        return (m + n) / 2.;
    }

    public static void main(String[] args) {
     
     int zahl1 = Integer.parseInt(args[1]);
     int zahl2 = Integer.parseInt(args[2]);

        if (args[0].equals("Durchschnitt")) {
            System.out.println("Der Durchschnitt von" + args[1] + "und" + args[2] + "ist" + Durchschnitt(zahl1, zahl2));
        } else if (args[0].equals("ggT")) {
            int teiler = ggT(zahl1, zahl2);
            if (teiler == -1) {
                System.out.println("Es kann kein Teiler berechnet werden, die Zahlen müssen positiv sein.");
            } else {
                System.out.println(
                        "Der größte gemeinsame Teiler von " + zahl1 + " und " + zahl2 + " ist " + ggT(zahl1, zahl2));
            }
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B größter gemeinsamer teiler Java Basics - Anfänger-Themen 6
K größter gemeinsamer Teiler berrechnen, funktioniert nur bei bestimmten Zahlen Java Basics - Anfänger-Themen 2
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
B Erste Schritte Größter Abstand von 2 Zahlen aus 3 Zahlen ausgeben Java Basics - Anfänger-Themen 6
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
J Threads gemeinsamer Methoden Aufruf Java Basics - Anfänger-Themen 3
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
KogoroMori21 Größten gemeinsamen Teiler finden Java Basics - Anfänger-Themen 7
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
X Perfekte Zahlen mit Teiler ausgeben! Java Basics - Anfänger-Themen 29
S Zahl mit maximaler Anzahl von Teiler Java Basics - Anfänger-Themen 2
U Aufgabe - Teiler Java Basics - Anfänger-Themen 12
B Teiler einer Zahl ermitteln Java Basics - Anfänger-Themen 12
S Teiler ermittlen - Array erweitern? Java Basics - Anfänger-Themen 14
0 Anzahl der (primen) Teiler einer Zahl? Java Basics - Anfänger-Themen 6
G Ganzzahligen Teiler einer Eingabezahl k Java Basics - Anfänger-Themen 12
D ist a teiler von b? mit a und b gebrochene zahlen. Java Basics - Anfänger-Themen 6
C Teiler einer ganzen Zahl Java Basics - Anfänger-Themen 2
Y alle teiler einer zahl ausgeben Java Basics - Anfänger-Themen 23
J Teiler einer beliebigen Zahl ermitteln. Java Basics - Anfänger-Themen 19
G Ganzzahl oder nicht + gemeinsamen Teiler finden Java Basics - Anfänger-Themen 9
B größten gemeins. Teiler m. Euklidischen Algorith. nachbilden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben