2016-11-23 3 views
0

Dies ist mein erster Kurs in Java. wenn ich diesen Code schreibe, ist es halt einfach, wenn es den gcd druckt. Ich möchte, dass der Code von Anfang an neu beginnt und fortfährt. Da ich im Kurs keine komplizierten Codes genommen habe, wie ich es nicht darf. Das Programm besteht aus einer Schleife, die die kleinere ganze Zahl von der grßeren Zahl subtrahiert und eine Schleife fortsetzt, bis eine der ganzen Zahlen Null wird, so daß sie die Ganzzahl ungleich Null ausgibt.Kontinuierlicher Schleifencode in Java

import java.util.Scanner; 

public class JavaApplication8 { 

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 

     System.out.println("Enter the first integer: "); 

     while (in.hasNextInt() || in.hasNext()) { 

      while (in.hasNextInt() || in.hasNext()) { 
       int x = in.nextInt(); 
       System.out.println("x = " + x); 
       System.out.println("Enter the second integer: "); 
       int y = in.nextInt(); 
       System.out.println("y = " + y); 

       while (x != 0) { 
        while (x >= y) { 
         int a = Math.max(x, y); 
         int b = Math.min(x, y); 
         a = a - b; 
         x = a; 
         y = b; 
        } 
        while (x < y) { 
         int a = Math.min(x, y); 
         int b = Math.max(x, y); 
         b = b - a; 
         x = a; 
         y = b; 
        } 

        System.out.println("The gcd =" + y); 

       } 
      } 
     } 
    } 
} 
+0

'while (in.hasNextInt() || in.hasNext()) {...}', warum Sie tun habe zwei 'while' Loops mit der gleichen Bedingung? –

+0

@TimBiegeleisen Idk, vielleicht würde ich, dass ich den ganzen Code wiederholen würde – Smas

+0

Sie können if und else Anweisung innerhalb der while (x! = 0) Schleife verwenden – Ajay

Antwort

0

Das Problem mit Ihrem Code ist, dass Sie While-Schleife falsch verwenden. Stellen Sie sicher, dass Sie sowohl if-Anweisungen als auch Klassen effektiv nutzen (wenn Sie wissen, wie Sie sie verwenden).

Scanner in = new Scanner(System.in); 

    System.out.println("Enter the first integer: "); 

    int x = in.nextInt(); 
    System.out.println("x = " + x); 
    System.out.println("Enter the second integer: "); 
    int y = in.nextInt(); 
    System.out.println("y = " + y); 

    while (x != 0) { 
     if (x >= y) { 
      int a = Math.max(x, y); 
      int b = Math.min(x, y); 
      a = a - b; 
      x = a; 
      y = b; 
     }else if (x<y){ 

      int a = Math.min(x, y); 
      int b = Math.max(x, y); 
      b = b - a; 
      x = a; 
      y = b; 
     } 
    } 

    System.out.println("The gcd =" + y); 


    } 

} 

Versuchen Sie dies (sollte gut funktionieren).

+0

Obwohl es Ich habe nicht geschleift, aber es hat mir geholfen und ich habe die Antwort bekommen. Danke: D @ marshmellooooooos – Smas

0

Eine weitere Möglichkeit, dieses Problem zu lösen:

Scanner in = new Scanner(System.in); 
while(true) { 
System.out.println("Enter the first integer: "); 
while(in.hasNextInt() ==false) { 
} 
int x = in.nextInt(); 
System.out.println("x = " + x); 
System.out.println("Enter the second integer: "); 
while(in.hasNextInt() ==false) { 
} 
int y = in.nextInt(); 
System.out.println("y = " + y); 

while (x != 0 && y != 0) { 
    if (x >= y) { 
     x = x - y ; 
    }else if (x<y){ 
     y = y - x ; 
    } 
} 
if(x != 0) { 
System.out.println("The gcd is " + x) ; 
} else { 
System.out.println("The gcd is " + y) ; 
} 
} 

Der Code wird warten, bis ein Benutzer die ganzen Zahlen eingibt, bevor die Ausführung zu starten.

+0

Danke :) @Ajay – Smas

0

Dies ist die Antwort, die ich, dank 4 Hilfe jeder will: D

Scanner in = new Scanner(System.in); 
    System.out.println("Enter the first integer: "); 
    while (in.hasNextInt()) { 
    int x = in.nextInt(); 
    System.out.println("x = " + x); 
    System.out.println("Enter the second integer: "); 
    int y = in.nextInt(); 
    System.out.println("y = " + y); 

while (x != 0) { 
    if (x >= y) { 
     int a = Math.max(x, y); 
     int b = Math.min(x, y); 
     a = a - b; 
     x = a; 
     y = b; 
    }else if (x<y){ 

     int a = Math.min(x, y); 
     int b = Math.max(x, y); 
     b = b - a; 
     x = a; 
     y = b; 
    } 
} 

System.out.println("The gcd =" + y); 
System.out.println("Enter the first integer: "); 



} 

    } 

} 
Verwandte Themen