2016-08-21 87 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