我对Java中的循环感到困惑

时间:2013-12-13 04:56:24

标签: java

最近我试着编写一个打印出参数中输入的两个数字的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;
    }

}

5 个答案:

答案 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)

  • 第1部分是最初的,意味着它只在开头发生一次
  • 第2部分是每次执行前检查的条件。如果条件为真,则执行正文中的代码。如果为false,那么它将脱离循环
  • 第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;
}