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

考えられるのは、インデックス0から4までパケットの値* 2を掛け、次にこの値を複数にすることです* 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