找到这个无限循环的原因

时间:2016-11-18 22:18:10

标签: java infinite-loop

我正在研究这个课程,这个课程很快就会上课,但是在我的生活中无法解决为什么我有一个无限循环。这是我的第一个编码课,所以这对我来说都是新手。我已经发现循环来自我的“getLocation”方法,我认为我试图计算“位置”变量的方式有问题,但就像我说我不确定。我们刚刚开始使用多个类和私有构造函数,它真的让我失望。我会接受任何帮助。谢谢!

public int getLocation(){
    while (location <= 250) {

    location = 5;
    location++;                     //endless loop here
    System.out.println("test");
    }

    return location;
}

3 个答案:

答案 0 :(得分:3)

while (location <= 250) {

location = 5;
location++;                     //endless loop here
System.out.println("test");
}
在这个循环中,

location永远不会超过250。执行循环体后,其值始终为6,因为您将其设置为5并添加1。

因此,当它到达此循环时提供location <= 250,它将永远不会停止。

location = 5;移到循环体外(或只删除它)。

答案 1 :(得分:2)

public int getLocation(){
    while (location <= 250) {
         location = 5;  // every loop this equals 5
         location++;                
     }
    return location;
}

每个循环设置的位置等于5。将其移至while()之前,以便您只设置一次,然后每个循环递增一次。

public int getLocation(){
    location = 5;            //  this equals 5 initially
    while (location <= 250) {
         location++;         // this will now increment appropriately
     }
    return location;
}

答案 2 :(得分:-1)

你无法看到你是否失明。我使用了大量的print语句,以便我可以看到程序正在做什么。如果您不知道问题是什么,则不知道将打印语句放在何处。所以你可以看到很多印刷语句。