Eclipse Größter gemeinsamer Teiler mit Modulo


Java:
public class Aufgabe1 {
    public static void main(String[] args) {
        
        int x = 8;
        int y = 20;
        int temp =0;
        int Rest = 0;
                
        if(x<y) {
         temp = x;
         x = y;
         y = temp;
        
        }
        
        
        Rest = x % y;
            if(Rest !=0)
                x=y;
                y=Rest;
                
                else if ( Rest = 0)
                    System.out.println("Der ggt. lautet:" +y);
                    
        
            
            
        }
                
        
}




Hallo!

Ich soll den ggT. mit Hilfe der Modulo Funktion finden. Habe ganz neu mit Java im Maschinenbaustudium angefangen und habe 0,0 Erfahrung im Programmieren. Wir haben in der Vorlesung einen Pseudocode entwickelt mit dem wir dann in Eclipse richtig programmieren sollten.
Oben ist mein Versuch. Ich verstehe allerdings nicht, warum ich bei "else if" eine Fehlermeldung bekomme und warum ich ein " cannot convert from int to boolean" Problem habe obwohl ich doch oben "Rest" als int deklariert habe... :/

 
Beste Antwort
Der if-Block (Zeilen 19, 20) muss in { ... } Klammern gesetzt sein, sonst interpretiert der Kompiler NUR Zeile 19 als if-Block.
Somit bezieht der Kompiler Dein else nicht auf das if, sondern aif Zeile 20 und das ergibt keinen Sinn.

Du solltest aber nochmals den Code mit dem Pseudocode vergleichen, denn es fehlt eine Schleife (bzw. ein rekuriver Aufruf wie im Post #2)

P.S.: Vergleiche von Zahlen (und anderen primitiven Typen) mit ==, !=, <, <=, >, >=, aber NICHT mit =

Blender3D

Top Contributor
Java:
public static int ggT(int a, int b) {
        if (a == 0)
            return Math.abs(b);
        if (b == 0)
            return Math.abs(a);
        return ggT(b, a % b);
    }
 

MarvinsDepression

Bekanntes Mitglied
Der if-Block (Zeilen 19, 20) muss in { ... } Klammern gesetzt sein, sonst interpretiert der Kompiler NUR Zeile 19 als if-Block.
Somit bezieht der Kompiler Dein else nicht auf das if, sondern aif Zeile 20 und das ergibt keinen Sinn.

Du solltest aber nochmals den Code mit dem Pseudocode vergleichen, denn es fehlt eine Schleife (bzw. ein rekuriver Aufruf wie im Post #2)

P.S.: Vergleiche von Zahlen (und anderen primitiven Typen) mit ==, !=, <, <=, >, >=, aber NICHT mit =
 
Beste Antwort
Der if-Block (Zeilen 19, 20) muss in { ... } Klammern gesetzt sein, sonst interpretiert der Kompiler NUR Zeile 19 als if-Block.
Somit bezieht der Kompiler Dein else nicht auf das if, sondern aif Zeile 20 und das ergibt keinen Sinn.

Du solltest aber nochmals den Code mit dem Pseudocode vergleichen, denn es fehlt eine Schleife (bzw. ein rekuriver Aufruf wie im Post #2)

P.S.: Vergleiche von Zahlen (und anderen primitiven Typen) mit ==, !=, <, <=, >, >=, aber NICHT mit =
Vielen Dank, das hat mir sehr weiter geholfen! :D
 

Neue Themen


Oben