2013-10-11 42 views
0

我是Java新手,遇到一個帶有「while」循環的程序,該循環的條件是對象引用/調用。我徹底地追蹤了代碼,並沒有看到對象的任何終止條件(如果while循環條件中的對象具有'while'循環實現導致的終止條件,這是有意義的)。如何在Java中使用對象引用作爲while循環條件?

注意:這涉及'內部'/'嵌套'的類,所以我甚至不完全確定這是它的工作原因。如何通過這種語法來滿足循環?我會盡量幀我的問題在下面的僞代碼:

class DemoClass { 

    demoClassfoo() { 

     InnerClassdemo object2 = this.new InnerDemoClass; 

     // Here is where my confusion is. I always thought that the 
     // while loop had to terminate with a logical statement being 
     // satisfied: like it is calling an object? 

     while(object2.innerClassfoo()) { 

      IMPLEMENTATIONS;    
     }         
    }          

    class InnerDemoClass {    

     innerDemoClassfoo() { 

      IMPLEMENTATION; 
     } 
    } 

    public static void main(String[] args) { 

     DemoClass object = new DemoClass(); 

    } 
} 
+1

它調用一個方法返回一個類型爲'boolean'的值。 –

+1

本教程解釋得非常好:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html – iamnotmaynard

+0

Sotirios,我很慚愧地承認自己的'noobness',但我並沒有真正做到這一點條件邏輯語句通常是'while'條件評估爲布爾真/假值。當我看到一個循環時,我想到的唯一一件事就是「確定並記下它,這樣循環就會終止!」。但是,我不認爲只是返回一個布爾值來這樣做。這非常清除了這種混亂。該教程也對iamnotmaynard有幫助。感謝大家的幫助! –

回答

8

這工作,因爲innerClassfoo返回boolean值,從而滿足while條件的方法。順便說一句,代碼應該看起來像這樣:

class InnerDemoClass{    

    boolean innerDemoClassfoo(){ 
     //implementation goes here 
     //make sure to ALWAYS return the value 
     boolean result = ... 
     return result; 
    } 
} 
+0

我不知道他在這種情況下不會返回任何值,因爲它是一個原始布爾值而不是布爾值? ;-)然而+1 –