was wird in der while schleife gemacht

abdel

Neues Mitglied
Java:
import javax.swing.JOptionPane;
public class Zahlenspiel {

    public static void main(String[] args) {
    int m, n, r;
    String eingabe;

    eingabe = JOptionPane
        .showInputDialog("Geben Sie eine ganze Zahl für m ein: ");
    m = Integer.parseInt(eingabe);
    
        System.out.println("m = " + m);
    eingabe = JOptionPane
        .showInputDialog("Geben Sie eine ganze Zahl für n ein: ");
    n = Integer.parseInt(eingabe);
    
        System.out.println("n = " + n);
    r = m % n;
    
        System.out.println("r = " + r);
    while (r > 0) {
        m = n;
        n = r;
        r = m % n;
    }
    System.out.println("ggT = " + n);
    }

}
was wird im programm gemacht was bedeutet dieses zeichen "%" und kann mir jemand die while schleife mal erklären also was die hier genau macht und was diese mit dem letzten System.out.println nacht also wie sie "n" beeinflusst, bzw ob sie es tut
 
Zuletzt bearbeitet von einem Moderator:
Nutz bitte die
Java:
 tags für deinen code.
% ist der Modulo-operator, also der Restwertoperator.  A%B ist gleich der Rest von A der nicht mehr ganz durch B teilbar ist. Also 10%3 ist 1, da 10 nicht glatt durch 3 geteilt werden kann, aber dafür 9. Und der Rest der nicht geteilt werden kann ist eben 1.
3%3 ist 0, da 3 glatt durch 3 geteilt werden kann.

Deine schleife hat als bedingung r>0, und r ist der Rest der Division. 
=> solange noch ein rest übrig bleibt, wird der Schleifenbody wiederholt
In jedem Schleifendurchlauf wird der Rest dann zum Divisor. 

Dies entspricht dem euklidischen Algorithmus
 

Zurück
Oben