最近我试着编写一个打印出参数中输入的两个数字的LCM的程序。 虽然我幸运没有任何编译错误,但我得不到正确的答案。 我在for循环中使用了嵌套ifs,但我找不到问题...你能帮助我吗? 我对i ++概念感到困惑。谢谢。
以下是我为LCM课程撰写的内容。
public class LCM {
public static int calcLCM(int num1, int num2) { // num1=10, num2=4; their
// LCM is 20
// num1 has to be greator than num2
int multiple = 0;
for (int i = 1; i == num1; i++) {
if (num2 == num1) {
multiple = num2;
}
else if (num2 * i > num1) {
i++;
num1 = num1 * i;
}
else if (num2 * i < num1) {
i++;
num2 = num2 * i;
}
}
return multiple;
}
}
答案 0 :(得分:6)
将for(int i=1;i==num1;i++)
更改为for(int i=1;i<=num1;i++)
。
当前代码中的for
循环仅在i == num1
答案 1 :(得分:2)
for(int i=0;i<10;i++)
{
System.Out.Println(i);
System.Out.Println("\n");
}
//此循环运行10次
答案 2 :(得分:1)
i ++意味着,我们在等式/条件中使用int i然后将其递增1。 例如,
int i = 1;
int j = (i++) + 3;
System.out.println(j);
System.out.println(i);
输出
4
2
j将是4,因为它会使用i,因为它是(1 + 3)然后它会增加i,这样我就会变为2.
在for循环中有三个部分
for(part 1; part 2; part 3)
Theres是一个不同的for循环,可以用于数组,例如迭代器,但是你可能会在以后找到它
答案 3 :(得分:0)
循环仅在i==num1
Aka num1==1
时运行。
尝试for(int i=1;i<=num1;i++)
答案 4 :(得分:0)
public class LCM
{
public static int calcLCM(int num1, int num2)
{
//num1=10, num2=4; their LCM is 20
//num1 has to be greator than num2
int i=1;
while((num1*i)%num2!=0)
{
i++;
}
return num1*i;
}