Java 如何使用while循环正确修改整数
所以基本上,我只是想从前面的两个数字中返回一个GCDJava 如何使用while循环正确修改整数,java,while-loop,integer,greatest-common-divisor,Java,While Loop,Integer,Greatest Common Divisor,所以基本上,我只是想从前面的两个数字中返回一个GCD public static String GCD( int Denominator,int Numerator) { int newNum=Numerator; int newDen=Denominator; int newWhole=Whole; int GCD=0; if (Numerator == 0) { GCD = Denominator; } while (
public static String GCD( int Denominator,int Numerator) {
int newNum=Numerator;
int newDen=Denominator;
int newWhole=Whole;
int GCD=0;
if (Numerator == 0) {
GCD = Denominator;
}
while (Denominator != 0) {
if (Numerator > Denominator) {
Numerator = Numerator - Denominator;
}else {
Denominator = Denominator - Numerator;
}
}
GCD = Denominator;
System.out.println(GCD);
}
你可能会认为,既然我在循环外声明了GCD,那么它会很好地返回
但是没有,我只得到0作为答案?几乎每次。。。。。想法 这是因为while循环依赖于
分母的值,因为分母的值减小到0时循环结束
在while循环之外,您将分母的值存储在'GCD'
中,它显然是'0'
所以无论你在while循环中做什么,你的GCD最终结果都是0
我希望这能解决您的问题。您需要在代码中的某个地方使用return语句。可能在方法的末尾,您需要编写返回GCD代码>我怀疑您的GCD算法已关闭。首先,你从来没有真正检查过你所采取的步骤是否会产生一个分母,将两个数字分开。说到这里,我甚至没有在输入中看到两个分子。你有什么想法来解决这个问题吗?可能回顾一下while循环的一次迭代?