2014-10-27 48 views
0

我需要一些幫助或一般建議,說明爲什麼我的代碼無法按預期運行。Java整數門組合

背景信息:在組合類中創建了由3位,2位數字(10-99之間)組成的組合。 ConnectionManager類(通過下面給出的鏈接找到)按遞增順序接收組合(通過組合中的訪問器將它們分配爲例如34 67 87)。包含在嵌套while循環中的循環必須經過所有可能的組合;當輸入組合成功時停止,或者達到極限(97 98 99)。爲了澄清,這三個整數不能相等(例如34 34 97),並且默認值爲10 11 12。如果找到組合,則方法本身必須返回布爾值,以便繼續下一個方法。

當滿足這兩個條件中的任何一個時,循環本身必須結束,否則整個程序將失敗。我正在努力尋找一種適當的工作方式,任何形式的幫助/建議都是值得讚賞的。

public class ConnectionManager 
{ 
    private Combination combo; 
    private Connector connect; 
} 

public class ConnectionManager() 
{ 
    combo = new Combination(); 
    connect = new Connector(); 


public void unLockDoor(AbstractCombination combo)    
{ 
    int count = 0; 
    int combo3; 
    int combo2; 
    int combo1; 


for(counter = 0; counter <= 99; counter++) 
{ 
    while(combo3 <= 99) 
    { 
     while(combo2 < combo3) 
     { 
      while(combo1 < combo2) 
      { 
       setCombo();      //From the combination class to set combination 
       if(Connector.unLockDoor(combo) == true)  //From Connector Class 
       { 
        unlock = true; 
       } 
       else 
       { 
        combo1++; 

        if(combo1 == combo2) 
        { 
         combo1 = 10;  
         combo2++; 

         if(combo2 == combo3) 
         { 
          combo2 = 11; 
          combo3 = 12; 
          combo3++; 
         } 
        } 

       counter += 1; 
       System.out.println(combo1 + " " + combo2 + " " + combo3 + " " + counter) 
       } 
      } 
     } 
    } 

    System.exit(0); 

} 
} 

我道歉,如果有什麼不對這個帖子格式明智,再次指向任何問題了:)

+3

你實際上沒有說明問題是什麼。你期待什麼和實際發生了什麼? – Paolo 2014-10-27 15:29:00

+0

此代碼不能編譯。你還沒有初始化你的變量。您的構造函數不在其類中,而且您沒有使用您定義的實際字段。 – RealSkeptic 2014-10-27 15:59:00

回答

0

我假設你的代碼不編譯由於語法錯誤,因爲你必須在「類」你的構造函數聲明。更改:

public class ConnectionManager 
{ 
    private Combination combo; 
    private Connector connect; 
} 

public class ConnectionManager() 
{ 
    combo = new Combination(); 
    connect = new Connector(); 

public class ConnectionManager 
{ 
    private Combination combo; 
    private Connector connect; 


    public ConnectionManager() 
    { 
     combo = new Combination(); 
     connect = new Connector(); 
0

的問題是在

  if(combo2 == combo3) 
        { 
         combo2 = 11; 
         combo3 = 12; 
         combo3++; 
        } 

每當combo2達到combo3的值combo3 13復位。