2016-08-21 111 views
0

我製作的方法應該給出另一個數據包值* 2,而數組索引< 4.然後它應該給出數據包值* 3,直到光盤空間不足。我在代碼中犯了什麼錯誤?謝謝。將數據包添加到數組

public static void addPacketsToTable(byte[] byteTable, long packetSize, long diskSpace) throws IOException { 
 
     long packet = fetchPacketSize();//size of packet (it is 5) 
 
     long space = fetchDiskSpace();//free space on my disk 
 
     for(int i = 0; i < byteTable.length; i++) {//for another packet 
 
      while(packet < space && byteTable[i] < 4) { 
 
       packet *= 2; 
 
       while(byteTable[i] > 4) { 
 
        packet *= 3; 
 
       } 
 
       System.out.println(packet); 
 
      } 
 
     } 
 
    }

+0

也許你提供更多的上下文。我其實不知道你的代碼應該做什麼;或者它應該用於什麼... – GhostCat

+0

這個想法是將數據包值* 2從索引0乘到4,然後再乘以這個數值* 3,直到空閒空間消失 – jas97

回答

0

據我理解這個問題,一個簡單的解決方案可能是:

public static void addPacketsToTable(byte[] byteTable, long packetSize, long diskSpace) throws IOException { 

    long packet = fetchPacketSize(); //size of packet (it is 5) 
    long space = fetchDiskSpace(); //free space on my disk 

    for (int i = 0; i < byteTable.length; i++) { //for another packet 

     if (i < 4) 
      packet *= 2; 
     else 
      packet *= 3; 

     // packet size overflows disk 
     if (packet > space) 
      break; 

     System.out.println(packet); 

    } 
} 
+0

好吧,現在我犯了一個錯誤看到了。我需要指數,而不是指數的價值......我的錯。我應該如何解決它?有沒有解決方案? – jas97

+0

請參閱編輯的代碼。這可以幫助你。 – Shahid