這段代碼編譯得很好,但是當我運行它時,它會按照預期請求我的兩個數字,然後就坐在那裏,根本什麼都不做。我搜索了互聯網,並且整天都在做這件事。我終於放下心來,尋求幫助。我的歐幾里得算法運行速度很慢
是不是自動循環備份的問題?在此之後的10個小時,我什麼也沒找到。
import java.util.Scanner;
public class EA
{
public static void main (String[] args)
{
// get first integer from user
Scanner input = new Scanner(System.in);
System.out.println("Please enter the larger integer: ");
int I;
I = input.nextInt();
// get second integer from user
System.out.println("Please enter the smaller integer: ");
int J;
J = input.nextInt();
//resolve the issue of zero
while(J<1)
{
System.out.println("Can not divide by zero!");
System.out.println("Please enter new smaller integer: ");
J = input.nextInt();
//do the calculations
while(J>0)
{
int Remainder;
Remainder = I % J;
while(Remainder>0)
{
I = J;
J = Remainder;
return;
}
System.out.println("GCD is" + J);
}
}
}
}
你確定它沒有做任何事情,而不是循環無限?嘗試將輸出添加到所有循環或通過一次一行地逐步調試代碼來調試代碼。 –
到目前爲止我的最佳分析:「問兩次」導致代碼被凍結。當這個問題解決後,'return'將會破壞邏輯。而當'return'問題解決後,無限循環就會啓動。這只是計算主要問題! – SJuan76