2016-11-23 5 views
0

これは私の最初のコースです。私がこのコードを書いているとき、それはgcdを印刷するときに停止するだけです。私は、コードを最初からやり直してからやり直したい。コースには複雑なコードはありませんでしたので、私は許されません。このプログラムは、より大きな整数から小さな整数を減算するループについてのものであり、整数の1つがゼロになるまでループを続けるので、非ゼロの整数が出力されます。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

'しばらく(in.hasNextInt()|| in.hasNext()){...}'なぜあなたは同じ条件の2つのwhileループを持っていますか? –

+0

@TimBiegeleisen Idk、多分私はコード全体を繰り返すだろう – Smas

+0

while(x!= 0)ループの中でifとelse文を使用したいかもしれない – Ajay

答えて

0

whileループを間違って使用しているという問題があります。 if文とクラスを有効に使用するようにしてください(使用方法がわかっている場合)。

これを試してください(正常に動作するはずです)。

+0

ループしていませんでしたが、それは私を助け、私は答えを得ました。ありがとう:D @ marshmellooooooos – Smas

0

この問題に取り組むための別の方法:ユーザーが実行を開始する前に、整数を入力するまで

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) ; 
} 
} 

コードがお待ちしております。

+0

ありがとう:) @Ajay – Smas

0

これは、ヘルプみんなのおかげ4私が望む答えである: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: "); 



} 

    } 

} 
関連する問題