在Java中嵌套while循环

Twi*_*erz 1 java loops while-loop nested-loops

我在java程序中遇到了一些嵌套的while循环问题.从我调试的代码开始,我的代码会检查第二个while循环语句,然后永远退出循环.我不知道为什么会发生这种情况所以我会在这里发布代码:

while (current != null) {
        if(id == current.getMovie().getId()) {
           movieExists = true;
           movie = current;
           while (checkCurrent == movie) {
              showingPointer = checkCurrent.getMovie().getLinkHead();
              while (showingPointer != null) {
                 if (cal.compareTo(showingPointer.getShowing().getShowingCalendar()) == 0) {
                    return false;
                 }
                 showingPointer = showingPointer.getNext();
              }
              checkCurrent = checkCurrent.getNext();       
           }        
        }
        current = current.getNext();
     }
Run Code Online (Sandbox Code Playgroud)

The*_*bit 6

这个说法

while (checkCurrent == movie) {
Run Code Online (Sandbox Code Playgroud)

比较对象引用并始终为false.这不是比较两个实例的方法

您可能希望更改代码以比较值

 while(checkCurrent.getMovie().getId() == movie.getMovie().getId()){
Run Code Online (Sandbox Code Playgroud)

或者实现equals()进行比较.

更多关于平等